Flask - 数据库相关
1. Flask-SQLAlchemy
1.1 参考:
http://flask-sqlalchemy.pocoo.org/2.3/
https://github.com/janetat/flasky/commits/master?after=f0d6546112480b0f728194982e3fa8f9d7f0962f+34, git reset --hard 5b
https://www.cnblogs.com/allen2333/p/9059997.html
注意,任何ORM本身无法操作数据库,所以要在配置文件中配置DB。
1.2 需求
从请求的表单中获取名字。
如果数据库中存在获取后的名字,则在前端输出'Happy to see you again'。如果不在,则添加进数据库,在前端输出'Pleased to meet you'。
另外,这个从请求中的表单中获取的名字,不管怎样,也存入session中。下一次请求到来时,从session取出这个名字,在前端输出。
1.3 实现
完整示例:
https://github.com/janetat/flasky/commits/master?after=f0d6546112480b0f728194982e3fa8f9d7f0962f+34, git reset --hard 5b
粗略解说:
选用sqlite作为本地数据库。在Flask配置文件配置要database。参考:http://flask-sqlalchemy.pocoo.org/2.3/config/
app.config['SQLALCHEMY_DATABASE_URI'] =\
'sqlite:///' + os.path.join(basedir, 'data.sqlite')
创建data model,然后用脚本创建sqlite本地数据库。参考:http://flask-sqlalchemy.pocoo.org/2.3/quickstart/#a-minimal-application
2. Flask-Migrate数据库迁移框架
Flask-Migrate对SQLAlchemy的开发人员编写的一个数据库迁移框架Alembic做了包装,并集成到Flask-Script中,所有操作可以通过命令行完成。
https://github.com/janetat/flasky/commits/master?after=f0d6546112480b0f728194982e3fa8f9d7f0962f+34, git reset --hard 5d
关键代码:
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
...
db = SQLAlchemy(app)
migrate = Migrate(app, db)
...
# 导出到命令行
@app.shell_context_processor
def make_shell_context():
return dict(db=db, User=User, Role=Role)
...
export FLASK_APP=hello.py
flask db init
flask db upgrade
最新文章
- Atitit 深入理解软件的本质 attilax总结 软件三原则";三次原则";是DRY原则和YAGNI原则的折
- https 与http 的坑
- FreeMark学习(一)
- AxWebBrowser与WebBrowserU盾登陆时的使用
- javascript里面支持el表达式和<;s:iterator>;
- Python-2.7.11+Django-1.9.4安装配置
- [Angular 2] Create Shareable Angular 2 Components
- What is Flux?
- ubuntu16.04卸载软件
- eoLinker API-Shop 抓住区块链机遇,从这些API开始
- Hibernate注解用法
- 第四十天 并发编程之io模型
- 2018.4.25-ml笔记(梯度下降)
- android本地数据库,微信数据库WCDB for Android 使用实例
- PHP中封装Redis购物车功能
- Lua协程学习
- TI AM335x Linux MUX hacking
- spark 调优——基础篇
- JS简介——(一)
- 使用MVVM设计模式构建WPF应用程序
热门文章
- flask使用websocket
- Bug搬运工-CSCvi02106 :Cisco 2800, 3800, 1560 APs: when connected to a Cisco Switch CDP-4-DUPLEX_MISMATCH log is seen
- java.lang.String和java.util.NClob互相转换
- 使用PIE.htc 进行IE兼容CSS3
- C++文件写入,读出函数ofstream,ifstream的使用方法
- 4_4 信息解码(UVa213)<;二进制:输入技巧与调试技巧>;
- git清除用户信息
- 以太坊执行miner.start返回null终极解决方案
- ES2.3.5版本的数据类型
- DBC的故事(二)