上面给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():
返回一个列表,all()函数返回所有结果
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):
filter过滤器,根据条件查询
obj = User.query.filter(User.username == username).all();
print(obj);
return “查询成功”;
在SQLAlchemy中除了filter过滤器还有一些其他