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文件就可以

相关推荐
CT随23 分钟前
Redis 存在线程安全问题吗?为什么?
数据库·redis·安全
TravisBytes26 分钟前
Redis如何解决热Key问题
数据库·redis·缓存
宽带你的世界30 分钟前
TiDB 是一个分布式 NewSQL 数据库
数据库·分布式·tidb
明月清风徐徐36 分钟前
Miniconda + VSCode 的Python环境搭建
ide·vscode·python
隔壁老王15637 分钟前
tidb实时同步到mysql
数据库·mysql·tidb
2501_9032386543 分钟前
深入理解 JUnit 的 @RunWith 注解与自定义 Runner
数据库·junit·sqlserver·个人开发
笨鸟笃行1 小时前
爬虫第七篇数据爬取及解析
开发语言·爬虫·python
小光学长1 小时前
基于flask+vue框架的的医院预约挂号系统i1616(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
java1234_小锋1 小时前
一周学会Flask3 Python Web开发-response响应格式
开发语言·python·flask·flask3
大数据追光猿1 小时前
Python中的Flask深入认知&搭建前端页面?
前端·css·python·前端框架·flask·html5