增删查改CURD
本文章是通过学习《网易云python全栈工程师》课程的笔记
数据创建
user = User(field1 = value1, field2 = value2, …)
db.session.add(user)
db.session.commit( )
#获得用户列表
@app.route("/userlist", methods=['get', "post"])
def userList():
users = User.query.all()
return render_template("user/user_list.html" , users=users)
视图页面for循环用户
```python
{% for user in users %}
<tr>
<td>{{ user.username }}</td>
<td>{{ user.realname }}</td>
<td>{{ user.sex }}</td>
<td>{{ user.city }}</td>
<td>
<a href=" ">修改</a>
<a href=" ">删除</a>
</td>
</tr>
{% endfor %}
模板与识图准备
模板:
需要提供一个用户列表显示模板
路由:
提供一个访问路径
比如:@app.route("/userlist")
视图函数:
通过模型对象查询结果,并将结果赋给模板变量
例如:users = User.query.all()查看所有用户
D-delete删除记录
db.session.delete(记录对象)删除
单个删除:
use1=User.query.get(1)]
db.session.delete(user1)
db.session.commit()
即可将id=1的记录删除
批量删除:
users=User.query.all()
for循环要批量删除的用户
[db.session.delete(user)for user in users]
db.session.commit()
路由与视图函数准备
路由:
通常删除需要传递一个被删除对象的id
@app.route("/delete user/int:user_id")
视图函数
def deleteUser(user_id)
pass(删除语句)
记得要commit确定
return redirect(用户列表页)
#删除后返回用户列表页面
#根据用户id删除用户
@app.route("/user_delete/<int:user_id>")
def deleteUser(user_id):
user = User.query.get(user_id)
db.session.delete(user)
db.session.commit()
return redirect(url_for("userList"))
#redirect重定向回userList
U-update更新操作
通过模型类查询对象更新记录(U-更新记录)
比如:
use=db.query.get(1)
user1.password = ‘654321’
db.session.commit() 确认修改
模板:
修改页面需要的表单与注册页面的表单是一致的
但是需要使用用户当前信息填充表单
路由:
@app.route("/edit_user/int:user_id",methods=‘get’,‘Post’])
视图函数:
def request.method==‘POST’:
#执行修改
return……
#用户信息修改
@app.route("/useredit/<int:user_id>",methods=['get','post'])
def editUser(user_id):
user = User.query.get(user_id)
if request.method == "POST":
user.username = request.form['username']
user.realname = request.form['realname']
user.sex = request.form['sex']
user.mylike = "|".join(request.form.getlist('like'))
user.city = request.form['city']
user.intro = request.form['intro']
db.session.commit()
return redirect(url_for("userList"))
return render_template("user/edit_user.html",user=user)
**
条件检索
**
Model.query.<查询条件>.<查询方法>
@app.route("/userlist",methods=["get","post"])
def userList():
if request.method == "POST":
q = request.form['q']
condition = {request.form['field']:q}
#filter_by
# users = User.query.filter_by(**condition).all()
#like
if request.form['field'] == "realname":
condition = User.realname.like('%%%s%%' % q)
else:
condition = User.username.like('%%%s%%' % q)
if request.form['order'] == '1':
order = User.id.asc()
else:
order = User.id.desc()
users = User.query.filter(condition,User.sex==request.form['sex']).order_by(order).all()
else:
#users = User.query.all()
翻页
#分页操作
users = User.query.paginate(1,10)
return render_template("/user/user_list.html",users=users.items,pages=users.pages,total=users.total,pageLists=users.iter_pages())