Flask教程:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database
SOURCE
使用的数据库模块Flask-SQLAlchemy是对SQLAlchemy的封装。
使用的数据库迁移模块SQLAlchemy-migrate
数据库配置写在根目录的config.py中:
使用sqlite,不用启动数据库服务器
在app/__init__.py中导入上面的设置
不要搞混的地方, from app import views, models
中的app是包名称(文件夹名称);app = Flask(__name__)
是个对象,一个Flask实例。
定义表:app/models.py
注意这里外键的定义方法
以下是一些数据库操作脚本:
db_create.py
db_migrate.py
db_upgrade.py
db_downgrade.py
执行db_create.py生成数据库后,看一下怎么使用数据库:
Flask-SQLAlchemy一个简介
补充: 查看Flask-SQLAlchemy具体执行的语句
启用慢查询监视及监视阈值: config.py
SQLALCHEMY_RECORD_QUERIES = True
# slow database query threshold (in seconds)
DATABASE_QUERY_TIMEOUT = 0.5
Flash的after_request方法可用帮助我们输出每次请求的慢语句。
app/views.py
from flask.ext.sqlalchemy import get_debug_queries
from config import DATABASE_QUERY_TIMEOUT
@app.after_request
def after_request(response):
for query in get_debug_queries():
if query.duration >= DATABASE_QUERY_TIMEOUT:
app.logger.warning("SLOW QUERY: %s\nParameters: %s\nDuration: %fs\nContext: %s\n" % (query.statement, query.parameters, query.duration, query.context))
return response
下次课是如何真正地使用数据库