Flask数据库迁移简单介绍
2017-10-24 09:35
645 查看
前言
用过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不能删除有值的列…所以,大家就不要删除列了…
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- 数据库(三)为Python shell添加新的功能和使用Flask-Migrate实现数据库迁移
- 基于Server-Sent Event的简单聊天室 Web 2.0时代,即时通信已经成为必不可少的网站功能,那实现Web即时通信的机制有哪些呢?在这门项目课中我们将一一介绍。最后我们将会实现一个基于Server-Sent Event和Flask简单的在线聊天室。
- JDBC第一篇--【介绍JDBC、使用JDBC连接数据库、简单的工具类】
- JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】
- 南大通用GBase8s安全数据库的简单介绍与主流数据库的区别,适合场景
- 第四十章 简单数据库应用的创建及相关介绍(十五)
- 使用 Flask-Migrate 实现数据库迁移
- oracle导入大数据、数据库之间迁移数据简单方法
- 使用技巧:简单介绍JSP数据库高级操作
- 4000 Java中数据库连接池简单介绍
- BDB (Berkeley DB)数据库简单介绍(转载)
- 数据库物理分页和逻辑分页简单介绍
- memcached数据库简单配置介绍
- MongoDB 数据库简单介绍(安装篇)
- JDBC第一篇--【介绍JDBC、使用JDBC连接数据库、简单的工具类】
- 对SQL简单介绍、数据库、表的简单操作
- Flask中之数据库框架和模型类五:数据库迁移
- Sql Server数据库版本和数据库连接字符串简单介绍
- 简单介绍数据库系统
- php操作Mysql简单介绍:连接mysql|打开数据库|查询|关闭mysql