赞
踩
上面给roles表中添加了五条数据,下面这个视图函数给users表添加一条数据,关联roles表。
@app.route(“/addUser”)
def addUser():
user = User(username = “admin1”, password=“admin”, role_id=6)
db.session.add(user);
db.session.commit();
return “添加成功”
上面视图函数中是直接给出的roles表中的id值的,开发中可以根据某一属性查询出roles某一条数据进行关联。访问视图函数后,效果如下:
查询全部结果
定义一个视图查询出roles表中的所有数据。
@app.route(“/findAll”)
def findAll():
result = Role.query.all();
print(result)
for item in result:
print(item.id, item.name)
return “查询成功”
查询结果如下:
上述中查询使用了all()函数,返回查询的所有结果,下表是SQLAlchemy查询一些常用的函数。
| 方法 | 说明 |
| — | — |
| all() | 以列表形式返回查询的所有结果 |
| first() | 返回查询的第一个结果,如果没有结结果,则返回None |
| frist_or_404 | 返回查询的第一个结果,如果没有结果,则重则请求,返回404错误响应 |
| get() | 返回指定主键对应的行,如果没有对应的行,则返回None |
| get_or_404 | 返回指定主键对应的行,如果没找到指定的主键,则终止请求,返回404错误响应 |
| count() | 返回查询结果的数量 |
| paginate() | 返回一个Paginate对象,它包含指定范围内的结果 |
根据条件查询
在上述查询全部数据中,使用filter进行条件查询
如下视图函数根据username属性查询。
@app.route(“/findByUsername/”)
def findByUsername(username):
obj = User.query.filter(User.username == username).all();
print(obj);
return “查询成功”;
在SQLAlchemy中除了filter过滤器还有一些其他的查询过滤器。如下
| 过滤器 | 说明 |
| — | — |
| filter() | 把过滤器添加到原查询上,返回一个新查询 |
| filter_by() | 把等值过滤器添加到原查询上,返回一个新查询 |
| limit() | 使用指定的值限制原查询返回的结果数量
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。