Flask框架(flask-sqlalchemy操作,Migrate作用,Flask迁移数据库,Flaks同步表数据,)
2022/5/22 10:52:53
本文主要是介绍Flask框架(flask-sqlalchemy操作,Migrate作用,Flask迁移数据库,Flaks同步表数据,),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
[toc]
## 一:flask-sqlalchemy操作
```python
flask-sqlalchemy : 让flask更好的集成sqlalchemy
flask_migrate :类似于django的makemigrations和migrate,因为sqlalchemy不支持表修改(删除,增加字段)
```
### 1.引入:
```python
1.在开发过程中,需要修改数据库模型,而且还要在修改之后更新数据库。最直接的方式就是删除旧表,但这样会丢失数据。
2.更好的解决办法是使用数据库迁移框架,它可以追踪数据库模式的变化,然后把变动应用到数据库中。
```
### 2.Flask-Migrate扩展
```python
1.在Flask中可以使用Flask-Migrate扩展,来实现数据迁移。并且集成到Flask-Script中,所有操作通过命令就能完成。
2.为了导出数据库迁移命令,Flask-Migrate提供了一个MigrateCommand类,可以附加到flask-script的manager对象上。
```
### 3.flask-sqlalchemy与slask_migrate作用
```python
flask-sqlalchemy : 让flask更好的集成sqlalchemy
flask_migrate :类似于django的makemigrations和migrate,因为sqlalchemy不支持表修改(删除,增加字段)
```
### 4.flask-migrate初始化与迁移数据库介绍
```python
python3 manage.py db init 初始化:项目开始只执行一次(生成migrations文件夹)
python3 manage.py db migrate 等同于 makemigartions(models模型层,增删改记录)
python3 manage.py db upgrade 等同于migrate(同步记录到models模型层内)
```
### 5.flask-sqlalchemy 操作迁移数据库
```python
# 1.先导入,实例化得到一个对象
from flask_sqlalchemy import SQLAlchemy
# 2.生成db对象
db = SQLAlchemy()
# 3.所有表模型都继承 db.Model
# 4.在视图函数中查询那个session对象
db.session
```
### 6.导出项目依赖
```python
# 安装:pip3 install pipreqs
#导出:pipreqs . --encoding=utf8
```
## 二:Flask-Migrate的作用
#### 负责表结构同步
```python
db.create_all 方法,同步表结构,create_all方法只能够对新增模型进行同步,如果模型发生修改,不能够同步
flask-migrate可以对发生变更的模型进行同步
```
### (一) 安装插件
```python
pip install flask-migrate
```
### (二)使用
##### 1、实例化
![img](https:////upload-images.jianshu.io/upload_images/24465517-d24fe168e91aec42.png?imageMogr2/auto-orient/strip|imageView2/2/w/990/format/webp)
实例化步骤
##### 2、添加命令
![img](https:////upload-images.jianshu.io/upload_images/24465517-a0ac4bd3881fce5a.png?imageMogr2/auto-orient/strip|imageView2/2/w/997/format/webp)
添加migrate命令
### (三) 同步表结构
##### 1、init 初始化,只需执行一次
![img](https:////upload-images.jianshu.io/upload_images/24465517-4e6ed2da1f4f70c2.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
初始号操作
##### 2、migrate--将模型的变更生成迁移文件
![img](https:////upload-images.jianshu.io/upload_images/24465517-7896807e8583eda5.png?imageMogr2/auto-orient/strip|imageView2/2/w/1011/format/webp)
生成迁移文件
##### 3、upgrade
执行生成的文件,同步到表结构中
```python
python main.py db upgrade
```
这篇关于Flask框架(flask-sqlalchemy操作,Migrate作用,Flask迁移数据库,Flaks同步表数据,)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-25Elevate Your Lead Generation Game with Maps Scraper AI
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能