— app
— — admin 代表
— — auth 代表用户的点赞 评论 登录等等
— — blog 代表blog的网页
首先单独把auth运行出来
pip freeze > requirements.txt
作用范围:pip的freeze命令保存了保存当前Python环境下所有类库包,包括那些你没有在当前项目中使用的类库。 (如果你没有的virtualenv)
生成的requirements.txt:速度非常快,不到1s
作用范围:当前项目使用的类库导出生成为requirements.txt。
使用方法:pipreqs 加上当前路径即可。在导出当前项目使用的类库时,先定位到项目根目录,然后调用 pipreqs ./ --encoding=utf8 命令,该命令避免编码错误,并自动在根目录生成 ```requirements.txt```文件。
pip install pipreqs
pipreqs .
生成的requirements.txt:有点慢,耗时1m多
原文链接:https://blog.csdn.net/pearl8899/article/details/113877334
auth文件夹下的db是通过init.py来的,init.py的db是通过.auth.py来导入db的
from datetime import datetime
from RealProject import db
class BaseModel(db.Model):
__abstract__ = True
# 创建时间
add_date = db.Column(db.DateTime,nullable=False,default =datetime.now)
# 更新时间
pub_date = db.Column(db.DateTime,default =datetime.now,onupdate=datetime.now, nullable=False)
class User(BaseModel):
# 用户模型的主键
user_id = db.Column(db.Integer, primary_key=True)
# 每个用户的唯一用户名,不可为空
username = db.Column(db.String(128), unique=True, nullable=False)
# 用户密码,不可为空
password = db.Column(db.String(320), nullable=False)
# 用户性别,可为空
gender = db.Column(db.String(6), nullable=True) # 性别
# 用户头像 URL,可为空
avatar = db.Column(db.String(200), nullable=True) # 头像
# 用户电子邮件,可为空
email = db.Column(db.String(45), nullable=True) # 邮箱
# 用户个性签名,可为空
sign = db.Column(db.String(30), nullable=True) # 个性签名
# 用户个人介绍,可为空
introduce = db.Column(db.String(200), nullable=True) # 个人介绍
# 标识用户是否为超级管理员,可为空,默认为 False
is_super_user = db.Column(db.Boolean, nullable=True, default=False) # 超级管理员标识
# 标识用户是否活跃,可为空,默认为 True
is_active = db.Column(db.Boolean, nullable=True, default=True) # 是否为活跃用户
# 标识用户是否允许登录到后台,可为空,默认为 False
is_staff = db.Column(db.Boolean, nullable=True, default=False) # 是否允许登录后台
# 与 'Post' 模型的关系,关联的帖子级联删除
post = db.relationship('Post', back_populates='user', cascade="all,delete", passive_deletes=True)
# 与 'Answer' 模型的关系,关联的回答级联删除
answer = db.relationship('Answer', back_populates='user', cascade="all,delete", passive_deletes=True)
# 与 'Collection' 模型的关系,关联的收藏级联删除
collection = db.relationship('Collection', back_populates='user', cascade="all,delete", passive_deletes=True)
# 与 'Comment' 模型的关系,关联的评论级联删除
comment = db.relationship('Comment', back_populates='user', cascade="all,delete", passive_deletes=True)
# 打印或作为字符串使用时,用户对象的表示
def __repr__(self):
return '' % self.username
__repr__
函数是 Python 类中的一个特殊方法,用于提供对象的字符串表示。在这里,它返回一个字符串,格式为
,其中 %r
会用 User 对象的 username
属性替换。这种表示对于调试和日志记录很有用。例如,如果你打印一个 User
对象,你会看到类似
的输出。
model.py写好后进行数据库迁移操作
在terminal终端写入三段话
flask db init
flask db migrate
flask db upgrade
Flask迁移mysql数据库报错汇总_error:root:-CSDN博客
在完成执行flask db migrate
会在version下面出现一个py函数, 就说明flask db migrate 运行成功,接下来运行flask db upgrade
就可