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

今日任务

项目分级显示

— app

— — admin 代表

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

— — blog 代表blog的网页

首先单独把auth运行出来

第一步

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

1. 生成requirements文件夹

方法一:整个环境下的安装包都保存到requirements.txt中
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.先创建环境 在建立项目

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

photo
photo
auth文件夹下的db是通过init.py来的,init.py的db是通过.auth.py来导入db的

from datetime import datetime
from RealProject import dbclass 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)  # 个人介绍# 标识用户是否为超级管理员,可为空,默认为 Falseis_super_user = db.Column(db.Boolean, nullable=True, default=False)  # 超级管理员标识# 标识用户是否活跃,可为空,默认为 Trueis_active = db.Column(db.Boolean, nullable=True, default=True)  # 是否为活跃用户# 标识用户是否允许登录到后台,可为空,默认为 Falseis_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 initflask db migrate
flask db upgrade
flask 数据库迁移可能出现的问题

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/206052.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算术运算(这么简单?进来坐坐?)

先热热身 算术运算&#xff0c;也称为四则运算&#xff0c;包括加法、减法、乘法和除法。此外&#xff0c;算术运算还包括乘方和开方。 在算术中&#xff0c;加减被视为一级运算&#xff0c;乘除被视为二级运算&#xff0c;乘方和开方被视为三级运算。在一道算式中&#xff0c;…

网站导航栏下滑隐藏,上滑显示,效果杠杆,兼容性强

前言 导航栏是网站必不可少的一部分&#xff0c;那么&#xff0c;导航栏应该怎么样子实现&#xff0c;可以高效自定义兼容开发呢&#xff1f;当然&#xff0c;不仅要实现&#xff0c;而且还要实现导航栏顶部固定位置&#xff0c;下拉隐藏&#xff0c;稍微往上滑动就会出现&…

Python中的并发编程(2)线程的实现

Python中线程的实现 1. 线程 在Python中&#xff0c;threading 库提供了线程的接口。我们通过threading 中提供的接口创建、启动、同步线程。 例1. 使用线程旋转指针 想象一个场景&#xff1a;程序执行了一个耗时较长的操作&#xff0c;如复制一个大文件&#xff0c;我们希…

2022年第十一届数学建模国际赛小美赛D题野生动物贸易是否应长期禁止解题全过程文档及程序

2022年第十一届数学建模国际赛小美赛 D题 野生动物贸易是否应长期禁止 原题再现&#xff1a; 野生动物市场被怀疑是此次疫情和2002年SARS疫情的源头&#xff0c;食用野生肉类被认为是非洲埃博拉病毒的一个来源。在冠状病毒爆发后&#xff0c;中国最高立法机构永久性地加强了野…

【git教程】

目录 git与SVN的区别&#xff1a;集中式与分布式的区别Windows上安装Git创建版本库/仓库&#xff08;repository&#xff09;将文件添加到repository报错处理 查看仓库的状态版本回退工作区和暂存区管理和修改撤销修改删除文件远程仓库添加远程仓库警告解除本地和远程的绑定关系…

一文3000字从0到1用Python进行gRPC接口测试!

gRPC 是一个高性能、通用的开源RPC框架&#xff0c;其由 Google 主要面向移动应用开发并基于HTTP/2 协议标准而设计&#xff0c;基于 ProtoBuf(Protocol Buffers) 序列化协议开发&#xff0c;且支持众多开发语言。 自gRPC推出以来&#xff0c;已经广泛应用于各种服务之中。在测…

AI助力智慧农业,基于SSD模型开发构建田间作物场景下庄稼作物、杂草检测识别系统

智慧农业随着数字化信息化浪潮的演变有了新的定义&#xff0c;在前面的系列博文中&#xff0c;我们从一些现实世界里面的所见所想所感进行了很多对应的实践&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a;《自建数据集&#xff0c;基于YOLOv7开发构建农田场景下杂草检…

【C语言快速学习基础篇】之二控制语句、循环语句、隐式转换

文章目录 一、控制语句1.1、for循环1.2、while循环1.3、注意&#xff1a;for循环和while循环使用上面等同1.4、do while循环1.4.1while条件成立时1.4.2、while条件不成立时 C语言介绍 C语言是一门面向过程的计算机编程语言&#xff0c;与C、C#、Java等面向对象编程语言有所不同…

“分割“安卓用户,对标iOS,鸿蒙崛起~

近期关于**“华为于明年推出不兼容安卓的鸿蒙版本”**的消息传出&#xff0c;引起了业界的热议关注。自从2019年8月&#xff0c;美国制裁下&#xff0c;华为不再能够获得谷歌安卓操作系统相关付费服务&#xff0c;如此情况下&#xff0c;华为“备胎”鸿蒙操作系统一夜转正。 华…

有效解决wordpress的502 Bad Gateway错误提示

摘要&#xff1a;最近有客户反映使用阿里云虚拟云主机&#xff0c;wordpress常提示502 Bad Gateway错误&#xff0c;网关错误是网站上遇到的常... wordpress的502 Bad Gateway错误如何修复&#xff1f; 第1步&#xff1a;偶发错误可尝试重新加载网站 偶尔出现流量突发爆增或是服…

Sql Server关于表的建立、修改、删除

表的创建&#xff1a; &#xff08;1&#xff09;在“对象资源管理器”面板中展开“数据库”节点&#xff0c;可以看到自己创建的数据库&#xff0c;比如Product。展开Product节点&#xff0c;右击“表”节点&#xff0c;在弹出的快捷菜单中选择“新建表”项&#xff0c;进入“…

打工人副业变现秘籍,某多/某手变现底层引擎-Stable Diffusion简介

Stable Diffusion是2022年发布的深度学习文本到图像生成模型,它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如

K-means算法通俗原理及Python与R语言的分别实现

K均值聚类方法是一种划分聚类方法&#xff0c;它是将数据分成互不相交的K类。K均值法先指定聚类数&#xff0c;目标是使每个数据到数据点所属聚类中心的总距离变异平方和最小&#xff0c;规定聚类中心时则是以该类数据点的平均值作为聚类中心。 01K均值法原理与步骤 对于有N个…

[HITCON 2017]SSRFme perl语言的 GET open file 造成rce

这里记录学习一下 perl的open缺陷 这里首先本地测试一下 发现这里使用open打开 的时候 如果通过管道符 就会实现命令执行 然后这里注意的是 perl 中的get 调用了 open的参数 所以其实我们可以通过管道符实现命令执行 然后这里如果file可控那么就继续可以实现命令执行 这里就…

JavaSE基础50题:12. 编写代码模拟三次密码输入的场景。

概述 编写代码模拟三次输入的场景&#xff0c;最多能输入三次密码&#xff0c;密码正确&#xff0c;提示 “登录成功” &#xff0c;密码错误&#xff0c;可重新输入&#xff0c;最多输入三次&#xff0c;三次均错&#xff0c;则提示退出程序。 代码 import java.util.Scann…

Redission分布式锁原理初探

什么是分布式锁&#xff0c;为什么需要分布式锁 在多线程并发请求当中&#xff0c;为了保证我们的资源同一时刻只有一个线程进行操作&#xff08;如商品超卖问题、购票系统等&#xff09;&#xff0c;我们通常要添加锁机制&#xff0c;如ReentrantLock&#xff0c;也就是可重入…

C# 使用FluentScheduler触发定时任务

写在前面 FluentScheduler是.Net平台下的一个自动任务调度组件&#xff0c;以前经常用的是Quarz.Net&#xff0c;相对而言FluentScheduler的定时配置更为直观&#xff0c;可直接用接口进行参数化设置&#xff0c;对Cron表达式有恐惧症的人来说简直就是福音&#xff0c;使用起来…

Linux——进程状态

我们都知道进程信息被放到了PCB&#xff08;task_struct&#xff09;中&#xff0c;可以理解为进程属性的集合。 PCB中包含了进程的ID&#xff0c;时间片&#xff0c;pc指针&#xff0c;所有的寄存器&#xff0c;进程状态、优先级、I/O状态信息等等...有兴趣的可以去看看源码&…

【计算机网络笔记】物理层——频带传输基础

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

LAMP和分离式LNMP部署

目录 一.什么是LAMP&#xff1f; 二.安装LAMP 先安装apache&#xff0c;httpd网页服务&#xff1a; 接着安装mysql&#xff1a; 安装php&#xff1a; 创建论坛&#xff1a; 三.安装分布式LNMP&#xff1a; 先安装nginx&#xff1a; 到另一台主机安装php&#xff1a; …