flask 数据库迁移可能出现的六大问题,生成requirements文件夹方式,flask项目复写,

今日任务

项目分级显示

--- app

--- --- admin 代表

--- --- auth 代表用户的点赞 评论 登录等等

--- --- blog 代表blog的网页

首先单独把auth运行出来

第一步

1. 生成requirements文件夹
2.在一个新的虚拟环境里面完成requirements依赖下载
3.完成项目的复写

1. 生成requirements文件夹

方法一:整个环境下的安装包都保存到requirements.txt中
python 复制代码
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

1.先创建环境 在建立项目


在建立flask项目的时候选择现有的虚拟环境



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 '<User %r>' % self.username

__repr__ 函数是 Python 类中的一个特殊方法,用于提供对象的字符串表示。在这里,它返回一个字符串,格式为 <User %r>,其中 %r 会用 User 对象的 username 属性替换。这种表示对于调试和日志记录很有用。例如,如果你打印一个 User 对象,你会看到类似 <User 'john_doe'> 的输出。

model.py写好后进行数据库迁移操作

在terminal终端写入三段话

复制代码
flask db init

flask db migrate
flask db upgrade
flask 数据库迁移可能出现的问题



成功运行应该会出现detect xxx table




Flask迁移mysql数据库报错汇总_error:root:-CSDN博客

在完成执行flask db migrate会在version下面出现一个py函数, 就说明flask db migrate 运行成功,接下来运行flask db upgrade就可

对于一个大项目来说,迁移数据库的时候一定要在manage.py中导入model.py文件就可以

对于一个大项目来说,迁移数据库的时候一定要在manage.py中导入model.py文件就可以

相关推荐
二胖_备份管理员18 分钟前
ORACLE数据库备份入门:第四部分:2-备份场景举例
数据库·oracle·备份·备份场景
一个天蝎座 白勺 程序猿36 分钟前
Python爬虫(8)Python数据存储实战:JSON文件读写与复杂结构化数据处理指南
爬虫·python·json
Tech Synapse1 小时前
打造企业级AI文案助手:GPT-J+Flask全栈开发实战
人工智能·gpt·flask
q_q王1 小时前
dify对接飞书云文档,并且将图片传入飞书文档
python·大模型·飞书·dify·智能体·图片展示
聪明的墨菲特i1 小时前
SQL进阶知识:六、动态SQL
数据库·sql·sql注入·动态sql·prepare·execute
PingCAP1 小时前
APTSell x TiDB AutoFlow:AI 数字员工,助力销售业绩持续增长
数据库
noravinsc1 小时前
django filter 排除字段
后端·python·django
PingCAP1 小时前
从企业数智化四阶段解读 TiDB 场景价值
数据库
Haoea!1 小时前
java-mybatis01
java·数据库·oracle
zandy10111 小时前
衡石科技:HENGSHI SENSE 数据权限解决方案
java·数据库·科技