前言:本文是学习网易微专业的《python全栈工程师 - Flask高级建站》课程的笔记,欢迎学习交流。同时感谢老师们的精彩传授!一、课程目标
- 用户列表
- 用户信息删除与修改
- 用户条件查询
- 页面跳转
user = User(field1 = value1, field2 = value2, ...)
db.session.add(user)
db.session.commit()
注:要提高程序的性能,应该减少跟数据库打交道的次数
批量生成100个用户:
# 批量创建用户
def createBatchUsers():
words = list("abcdefghijklmnopqrstuvwxyz")
citys = ["010", "021", "0512"]
mylikes = ["睡觉", "旅游", "看书", "唱歌"]
import randomfor i in range(100):
random.shuffle(words)
username = "".join(words[:6])
sex = random.randint(0, 1)
city = citys[random.randint(0, 2)]
random.shuffle(mylikes)
mylike = "|".join(mylikes[:random.randint(0, 3)])
user = User(
realname = "-",
username = username,
password = "",
sex = sex,
mylike = mylike,
city = city,
intro = ""
)
db.session.add(user)
db.session.commit()
上节课创建的用户数据模型:
# 创建用户数据模型
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String)
password = db.Column(db.String)
realname = db.Column(db.String)
sex = db.Column(db.Integer)
mylike = db.Column(db.String)
city = db.Column(db.String)
intro = db.Column(db.String)
实操步骤:
Step1
.在虚拟环境中运行下面命令进行shell环境:flask shell
Step2
.在shell环境中导入createBatchUsers并运行:>>> from app import createBatchUsers
>>> createBatchUsers()
文章图片
Step3
.新开一个命令行窗口,在虚拟环境中运行下面命令,打开sqlite
数据库的web界面:sqlite_web my.db
文章图片
通过打开的网页窗口,我们可以看到新增虚拟用户(我这里是运行了两次,加注册了一个,所以一共是201个数据)
文章图片
2.2.R - read读取数据记录 2.2.1.读取操作 查询通过模型类的
query
对象方法:Model.query.<查询方法>
查询方法 | 说明 |
---|---|
all() | 获得所有记录 |
first() | 获得第一条记录,找不到返回None |
one() | 返回唯一 一 条记录,如果存在多条或者没有则报错 |
get(id) | 传入主键id,返回与主键值匹配的记录,无匹配返回None |
count() | 返回查询结果总数 |
one_or_none | 与one()一样,如果结果不唯一,返回None |
路由:提供一个访问路径。比如:
@app.route("/userlist")
视图函数:通过模型对象查询结果,并将结果赋给模版变量
新建文件:
templates/user/edit_user.html
和templates/user/user_list.html
user_list.html
内容如下:{% extends "base.html" %}
{% block style %}
input[type='number']{
width: 100px;
}
.btn{
margin-right: 30px;
}
{% endblock %}
{% block content %}
用户管理
总页数:{{ pages }}/总记录:{{ total }}
用户id
用户名
真实名
性别
城市
操作
{% for user in users %}
{{ user.id }}
{{ user.username }}
{{ user.realname }}
{{ user.sex }}
{{ user.city }}
修改
删除
{% endfor %}
{% for page in pageList %}
{% if page!=None %}
- {{ page }}
{% else %}
- ...
{% endif %}
{% endfor %}