Flask-Migrate数据库模型映射
1.Flask-Migrate介绍
flask-migrate可以十分方便的进行数据库的迁移与映射,将我们修改过的ORM模型映射到数据库中。flask-
migrate是基于Alembic进行的一个封装,并集成到Flask中,所有的迁移操作其实都是Alembic做的,他能跟踪模
型的变化,并将变化映射到数据库中。
pip install flask-migrate
2.Flask-Migrate使用
在项目中创建test_migrate.py,注意:flask-migrate中3.0以上版本没有MigrateCommand,此处flask-migrate版本为2.7.0
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager
# 使用flask-script添加自定义命令时需要将Manger对象中的from flask._compat import text_type改为from flask_script._compat import text_type
from comment.modle import db
import app # 导入自己初始化的app manager = Manager(app)
# 用来绑定app和db到flask-migrate的
Migrate(app, db)
# 添加Migrate的所有子命令到db下
manager.add_command('db', MigrateCommand) if __name__ == '__main__':
manager.run()
使用定义好的命令并初始化--python test_migrate.py db init,然后migtare,upgrade等步骤,最终会创建一个migrations目录和空的alembic_version表。
使用flask-migrate时需要先将自己定义的资源添加进定义的api中,否则只会创建一个空的alembic_version表,添加完资源后重复之前的命令。
3.Flask-Migrate命令
1. 初始化一个环境:python db_manage.py db init
2. 自动检测模型,生成迁移脚本:python db_manage.py db migrate
3. 将迁移脚本映射到数据库中:python db_manage.py db upgrade
4. 更多命令:python db_manage.py db --help
Flask-Migrate数据库模型映射的更多相关文章
- .NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践
心情小札:近期换了工作,苦逼于22:00后下班,房间一篇狼藉~ 小翠鄙视到:"你就适合生活在垃圾堆中!!!" 晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14 ...
- flask 面试题
1,什么是Flask,有什么优点?概念解释Flask是一个Web框架,就是提供一个工具,库和技术来允许你构建一个Web应用程序.这个Web应用程序可以是一些Web页面,博客,wiki,基于Web的日里 ...
- Flask入门的第一个项目
前言: Flask简介:Flask是一个使用 Python 编写的轻量级 Web 应用框架,基于 WerkzeugWSGI工具箱和 Jinja2模板引擎. 想要学习flask,又非常迷茫,不知如何下手 ...
- Flask从入门到精通之在视图函数中处理表单
在新版hello.py 中,视图函数index() 不仅要渲染表单,还要接收表单中的数据.更新后的index() 视图函数如下: @app.route('/') def index(): name = ...
- Mybatis(3) 映射文件-增删改查
映射文件: 映射文件是根据数据库模型生成的编写sql脚本xml文件, mapper标签中namespace属性值为对应模型实体类的全类名. <?xml version="1.0&quo ...
- Flask入门 表单Flask-wtf form原生 Bootstrap渲染(七)
(1) 原生的表单 模板页面,form表单form.html <form action="{{ url_for('/check/') }}" method='post'> ...
- Flask:web表单
客户端发送的所有通过POST发出的请求信息都可以通过request.form获取.但是如果我们要生成表单的HTML代码和验证提交的表单数据那么就需要采用另外的方法.Flask-WTF扩展可以把处理we ...
- python flask学习(3)
这次主要学习web表单.学了下,很像是Django的form表单验证.不过有许多的不同.可以说是功能更加碎块化.Django的验证方式是很固定和严谨的,风格完全不同. 尽管Flask的请求对象提供的对 ...
- flask入门(三)
表单 request.form 能获取POST 请求中提交的表单数据.但是这样不太安全,容易受到恶意攻击.对此,flask有一个flask-wtf扩展,用于避免这一情况 在虚拟环境下用pip inst ...
- Flask面试问题
1,什么是Flask,有什么优点?概念解释Flask是一个Web框架,就是提供一个工具,库和技术来允许你构建一个Web应用程序.这个Web应用程序可以是一些Web页面,博客,wiki,基于Web的日里 ...
随机推荐
- Python 新环境常见问题
Troubleshooting when run python script in new environment 1. Error: pluggy._manager.PluginValidation ...
- 用字典代替'if-elif-else'
在实际应用中,我们经常会需要采用if-elif-else控制语句以根据不同条件,作出不同的操作.if-elif-else固然可以,但是它也存在冗余的缺点,特别是当条件较多时这一缺点尤为明显.因此,本文 ...
- select remove option safari 兼容
select 移除某一 option 的 javascript 公司用的代码是 var ddlPrimaryResource = document.getElementById(ddlPrimaryR ...
- windows中的换行符和Linux中的换行符
# cat -A tmp.tmp 120.4987 12.717858^M$ ^M 对应的字符是 \r # cat tmp.txt | awk -vRS='\r\n' '{print $2,$1}' ...
- Java注解及应用原理
视频地址:https://www.bilibili.com/video/BV1Py4y1Y77P/?spm_id_from=333.337.search-card.all.click&vd_s ...
- js实现光标移入和移出元素事件
js实现光标移入和移出元素事件 效果实现: 代码: i标签添加事件 var onmouse = 'onmouseover = "overshow(this)" onmouseout ...
- ComPiler200004:Library-Oriented Programming
https://www.aliyun.com/jiaocheng/403982.html 摘要: Creating a simple, encapsulated, maintainable libra ...
- mybatis查询返回多条数据
返回User类型的list <select id="queryAllUser" resultType="org.example.entity.User"& ...
- 7. 交换排序的阈值(swapThreshold)
1 <!DOCTYPE html> 2 <html lang="zh"> 3 <head> 4 <meta charset="U ...
- Java流程控制之for循环
for循环[重点] 虽然所有的循环结构都可以用while或者do...while表示,但Java提供了另一种语句--for循环,使一些循环结构变得更加简单. for循环语句是支持迭代的一种通用结构,是 ...