php 迁移 flask,Flask数据库迁移简单介绍

本文介绍了从Django转向Flask时数据库管理的差异,重点在于Flask中如何进行数据库迁移。通过引入flask-script和flask-migrate插件,演示了创建数据表、初始化数据库、提交和回退修改的流程。文章还提醒注意SQLite3在删除列方面的限制。
摘要由CSDN通过智能技术生成

前言

用过Django的小伙伴都知道,Django的ORM是自带的,比较特殊,而且集成了很多功能,比如数据库迁移…

何为ORM,个人之见解,简化sql语句的书写,将关系型数据库的一张张表转化为了python的类,最大的好处是简化了学习成本,不会sql语句的程序员也能平滑的使用数据库,并且天生防sql注入。flask可以使用SQLAlchemy,包名为flask-sqlalchemy.至于具体用法翻译的官方文档讲的也足够清楚。大家直接谷歌跟着文档就能搞定,本篇主要讲如何进行数据库迁移。

flask的小工具

大家从Django转至Flask最明显的一个差异就是,flask直接运行就可以启动服务,Django是使用了runserver来进行运行。至于好坏大家自行斟酌。这里提一个插件。flask-script。pip安装即可。

from flask_script import Manager

......

manager = Manager(app)

......

#app.run() #注释这句

manager.run()

这样,启动的方式变为 python main.py runserver

这似乎有点画蛇添足,实则不然,这和我们下面要讲的数据库迁移有很大的联系。

数据库迁移

需要用的的插件 flask-migrate

安装之

main.py

from flask import Flask

from flask_script import Manager

from flask_sqlalchemy import SQLAlchemy

from flask_migrate import Migrate,MigrateCommand

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:opt/db.sqlite' #使用sqlite3数据库

db = SQLAlchemy(app) #ORM

migrate = Migrate(app,db)

manager = Manager(app)

manager.add_comman('db',MigrateCommand) #添加db 命令(runserver的用法)

#一个用户表

class User(db.Model):

...

...

省略

if __name__ == '__main__':

manager.run()

这样,准备工作已经就绪。

运行python main.py db init创建数据表。并且会在你项目下生成migrations/目录,保存你数据库每次变更的内容。

修改User类。

python main.py db migrate 提交修改

python main.py db upgrade 执行修改

再看User表,已经改变。

python main.py db downgrade 回退修改

有一点注意的:SQLite3不能删除有值的列…所以,大家就不要删除列了…

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值