flask项目中使用pymysql ORM实现:
1多表联查,
2.查询结果返回数组
3.查询结果返回对象
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
在 Flask 项目中使用 PyMySQL ORM 实现多表联查,可以按照以下步骤进行:
1、 安装 PyMySQL ORM
可以使用 pip 来安装 PyMySQL ORM:
pip install PyMySQL-ORM
2、 连接数据库
在 Flask 项目中,可以在 app.py
或者其他的 Python 文件中使用 PyMySQL ORM 连接数据库。示例代码如下:
from pymysql_orm import MySQLDB
# 创建 MySQLDB 对象
db = MySQLDB(host='localhost', port=3306, user='root', password='123456', database='mydb')
# 连接数据库
db.connect()
在上述代码中,我们创建了一个 MySQLDB
对象,并使用 connect()
方法来连接数据库。
3、 多表联查
在 PyMySQL ORM 中,可以使用 join()
方法来进行多表联查。示例代码如下:
from pymysql_orm import MySQLDB, Model, Field
# 创建 MySQLDB 对象
db = MySQLDB(host='localhost', port=3306, user='root', password='123456', database='mydb')
# 定义模型
class User(Model):
__table__ = 'user'
id = Field(primary_key=True)
name = Field()
age = Field()
class Order(Model):
__table__ = 'order'
id = Field(primary_key=True)
user_id = Field()
product = Field()
# 连接数据库
db.connect()
# 多表联查
result = db.session.query(User.id, User.name, Order.product).join(Order, User.id == Order.user_id).all()
# 打印结果
print(result)
在上述代码中,我们定义了两个模型 User
和 Order
,并使用 join()
方法进行了多表联查,查询了 user
表和 order
表中的数据。最后,我们使用 all()
方法获取查询结果,并打印结果。
4、 查询结果返回数组
在 PyMySQL ORM 中,执行查询操作后,可以使用 all()
方法获取查询结果的数组。示例代码如下:
from pymysql_orm import MySQLDB, Model, Field
# 创建 MySQLDB 对象
db = MySQLDB(host='localhost', port=3306, user='root', password='123456', database='mydb')
# 定义模型
class User(Model):
__table__ = 'user'
id = Field(primary_key=True)
name = Field()
age = Field()
# 连接数据库
db.connect()
# 查询数据
result = db.session.query(User.id, User.name, User.age).all()
# 打印结果
print(result)
在上述代码中,我们查询了 user
表中的数据,并使用 all()
方法获取查询结果的数组。
5、 查询结果返回对象
在 PyMySQL ORM 中,执行查询操作后,可以使用 first()
方法获取查询结果的第一个对象。示例代码如下:
from pymysql_orm import MySQLDB, Model, Field
# 创建 MySQLDB 对象
db = MySQLDB(host='localhost', port=3306, user='root', password='123456', database='mydb')
# 定义模型
class User(Model):
__table__ = 'user'
id = Field(primary_key=True)
name = Field()
age = Field()
# 连接数据库
db.connect()
# 查询数据
result = db.session.query(User.id, User.name, User.age).first()
# 打印结果
print(result)
在上述代码中,我们查询了 user
表中的数据,并使用 first()
方法获取查询结果的第一个对象。注意,如果查询结果为空,则 first()
方法返回 None
。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
from sqlalchemy.orm import sessionmaker