今天来讲一下基于flask的学生管理系统简单开发系列之登录
首先我们在pycharm新建一个叫website的项目 你可以让编译器自动帮你建一个虚拟环境venv 使用的前端模板为jinja2
笔者用的Python版本为3.6.0 如果flask没有装 建议用pip install flask
公司的网络下不了flask 可以使用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask 建议不使用的豆瓣的资源 也会被禁用掉
好了接下来等ide创建完以后 我们先来做一下项目整体的设计
- app文件夹 model.py和views.py
- model放数据库字段和数据库表的设计
- views放url的路径和各个接口的设计
- 图片文件、js、css放在static文件夹下
- html文件放在templates文件夹下
- 再加个utils文件夹 把我们项目的一些配置、工具类放在下面
- 最后manage.py文件作为整个项目的启动文件
第一步 我们先来设计数据库的表和字段
flask有SQLALchemy这个类来帮我们实现数据库的设计 我们把这个类赋值给变量db
db = SQLAlchemy()
有了这个db 登录么 总归要创建User这个类咯
class User(db.Model):
db这个后面也会派到用处 我们总得为这个User起一个表名user
__tablename__ = "user"
这时候 user表就好了 那么有了表 第一个想到是id
user_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
很明显 这个id用作主键 然后是自增长的
当然用户名和密码这两个字段是必要的
username = db.Column(db.String(50))
password = db.Column(db.String(200))
我还加一个添加时间 还有一个外键role_id用来关联role表 今天这篇文章展示不介绍怎么用
create_time = db.Column(db.DateTime, default=datetime.now)
role_id = db.Column(db.Integer, db.ForeignKey('role.role_id'))
username和password做一下初始化 views.py中接口的设计会用到
def __init__(self, username, password):
self.username = username
self.password = password
当然说到数据库 我们肯定有增删改查的操作 封装一下保存的操作
def save(self):
db.session.add(self)
db.session.commit()
再封装一下删除的操作
def delete(self):
db.session.delete(self)
db.session.commit()
至此 model的设计完成😀
第二步 既然我表的设计好了 那我数据库啥都没有耶 这时候我要创造出来吧
db.create_all()
单单就只有这个方法也做不了 那我可以写在接口里面行不 然后再浏览器里面调用 返回成功 就可以知道是否创建成功呗
@app.route('/create_db/')
def create_db():
db.create_all()
return "创建成功"
也可以删除数据库
@app.route('/drop_db/')
def drop_db():
db.drop_all()
return "删除成功"
这时候问题来了 怎么执行呢 我执行的方法都放在manage.py 看下一步
第三步 flask最简单的执行顺序为</