flask搭建平台实战教程一:生成数据库数据
1.flask搭建平台实战教程一:生成数据库数据
2.flask搭建平台实战教程二:快速实现用户注册和登录3.fastapi搭建平台实战教程二:快速实现用户注册和登录4.fastapi搭建平台实战教程一:生成数据库数据5.fastapi框架docs文档Responses去掉默认的异常响应422Validation Error6.flask搭建平台实战教程三:接口编写及权限校验(前后端分离)7.django-rest-framework搭建平台实战教程三:接口编写及权限校验(前后端分离)8.django-rest-framework搭建平台实战教程二:快速实现用户注册和登录9.django-rest-framework搭建平台实战教程一:生成数据库数据10.fastapi搭建平台实战教程三:接口编写及权限校验(前后端分离)11.fastapi搭建平台实战教程四:使用已有数据库编写api接口12.django-rest-framework搭建平台实战教程四-使用fast-crud集成后端权限功能flask是什么?flask可以做什么这里就不说了,百度一下即可,这篇文章主要是手把手带你使用flask搭建一个简单的注册、登陆、以及用户权限管理模块。
首先需要创建一个FLASK项目,如何创建可以参考flask官方文档,不再赘述。
创建app.py
from flask import Flask from flask import render_template app = Flask(__name__) app.config.from_pyfile(app.root_path + '/config.py') @app.route("/") def home(): return render_template("home.html") if __name__ == '__main__': app.run()
配置数据库
下一步配置数据库,完成mvc框架中的model层配置,pip安装flask-sqlalchemy和pymysql,在config.py配置数据库,数据库用下面的库名新建数据库
新建models包,添加用户表文件user.py、群组表文件group.py、权限表文件auth.py
__init__.py
from flask_sqlalchemy import SQLAlchemy
# 初始化db,关联flask 项目
db = SQLAlchemy()
user.py
from sqlalchemy import Column, Integer, String, ForeignKey, Boolean
from models import db
class User(db.Model):
__tablename__ = "user" # 数据库表名
id = Column(Integer,primary_key=True)
username = Column(String(24), nullable=False, unique=True, comment="昵称")
password = Column(String(100), nullable=False, comment="密码")
nickname = Column(String(100),nullable=True, comment="用户姓名")
email = Column(String(100), nullable=True, comment="电子邮箱")
isadmin = Column(Boolean,default=False,comment="管理员")
group.py
from sqlalchemy import Column, Integer, String
from models import db
class Group(db.Model):
__tablename__ = 'group'
id = Column(Integer, primary_key=True)
# : name of group
# : 权限组名称
name = Column(String(60), comment="权限组名称")
# a description of a group
# 权限组描述
info = Column(String(255), comment="权限组描述")
auth.py
from models import db
from sqlalchemy import Column,Integer,String
class Auth(db.Model):
__tablename__ = 'auth'
id = Column(Integer, primary_key=True)
# : 权限字段
auth = Column(String(60), comment="权限字段")
# : 权限的模块
endpoint = Column(String(60), comment="路由名称")
在app.py中加入以下代码初始化数据库
......
db.init_app(app)
from models import user, group, auth
with app.app_context():
db.create_all()
启动程序后成功创建三个表,然后添加表之间的关联关系
app/models/user.py
group_id = Column(Integer,ForeignKey("group.id"),default=1,nullable=True)
app/models/group.py
auths = relationship("Auth",backref="auth_group",cascade="all, delete")
users = relationship("User",backref="user_group",cascade="save-update")
app/models/auth.py
group_id = Column(Integer, ForeignKey("group.id"), nullable=True)
app.py添加Migrate(app, db)
......
# 迁移组件初始化
Migrate(app, db)
执行
flask db init
init 命令执行后,会生成migrations目录
flask db migrate
migrate 命令执行后,会migrations目录下的version文件夹新增版本文件
flask db upgrade
upgrade 命令更新表结构,查看数据库发现多了一张表记录变更信息
在models/__init__.py创建一个所有表文件的父类,加入创建时间、创建人等基本字段
class InfoCrud(db.Model):
__abstract__ = True # 作为父类使用,并且不在数据库生成此表
_create_time = Column('create_time', DateTime, default=datetime.now)
update_time = Column(DateTime, default=datetime.now, onupdate=datetime.now)
delete_time = Column(DateTime)
update_user_id = Column(Integer, nullable=True)
create_user_id = Column(Integer, nullable=True)
update_user_name = Column(String(50), nullable=True)
create_user_name = Column(String(50), nullable=True)
将之前表的父类改为InfoCrud
class User(InfoCrud):
......
再次运行
flask db migrate # ⽣成迁移版本, 保存到迁移文件夹中 flask db upgrade # 执行迁移
成功的话所有表都增加了这些基本字段,对于model层的配置基本完成,下一篇文章学习编写controller层的代码,实现用户注册和登录,以及判断登录权限。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现