Flask学习——数据库迁移
来源:互联网 发布:拓展人脉的软件 编辑:程序博客网 时间:2024/06/06 12:41
0x01
前言
用过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 Flaskfrom flask_script import Managerfrom flask_sqlalchemy import SQLAlchemyfrom flask_migrate import Migrate,MigrateCommandapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////opt/db.sqlite' #使用sqlite3数据库db = SQLAlchemy(app) #ORMmigrate = 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不能删除有值的列…所以,大家就不要删除列了…
阅读全文
0 0
- Flask学习——数据库迁移
- Flask学习(四):数据库迁移
- Flask迁移数据库
- Flask-Migrate数据库迁移
- Flask 数据库迁移工具 flask-migrate
- Flask Web 开发 数据库迁移
- Flask-Migrate实现数据库迁移
- python的flask框架mysql数据库迁移
- 使用 Flask-Migrate 实现数据库迁移
- flask学习笔记(-数据库)
- Flask数据库学习
- Flask学习笔记之数据库
- python的flask框架mysql数据库迁移 (二)
- 做Flask-Migrate数据库迁移 遇到了报错
- python使用flask-migrate迁移数据库时遇到的问题
- Flask——Jinja2 学习笔记
- [python3.6 flask web学习]Flask操作msql数据库
- python-flask项目填坑进行时—建立初始化迁移环境
- 2017吉林省赛 C题 线段树
- listview方法的调用顺序
- 洛谷 P3040 [USACO12JAN]贝尔分享Bale Share
- 数据结构-线性表的链式存储
- 669. Trim a Binary Search Tree
- Flask学习——数据库迁移
- BZOJ 2081 Beads Hash
- 基础Win32知识
- FastStone Capture 8.4 注册码(转)
- C++中的多态
- mybatis和hibernate的区别
- 剑指offer:按之字形顺序打印二叉树
- 用小说的形式讲解Spring(2) —— 注入方式哪家强
- Linux Shell学习