Web Flask实践
工程架构
import 相对路径的问题
只能 sys.path.append('.')
?感觉很傻.
相对路径:
import . from xxx
import .. from xxx
注意:
1. 顶层模块不要用,子目录(package)引用自身,或者跨目录,可以考虑 .和..
2. __init__.py 里,把本模块全部import一遍
使用两种方式都 ok 了
config
在 config 文件里配置的选项,都可以以字典方式取出来:
app.logger.info('After request %s ' % app.config['DATABASE_QUERY_TIMEOUT'] )
flask-sqlchemy 问题
首先要 create database.
下了个 mysql-client
CREATE DATABASE FP;
USE FP;
然后在 config.py 里指定 database 时才正常:
SQLALCHEMY_DATABASE_URI="mysql+pymysql://root:root@localhost:3306/FP"
然后为了正确建立 table,必须:
# before create_all, import all models
# 顺序都不能有问题,
from .database import db
from ..models import users
app = create_app()
bootstrap = Bootstrap(app)
app.logger.info('init db!')
db.init_app(app)
db checker
基于get_debug_queries
日志分流.db 的归 db ,逻辑的归逻辑. 更好的定位各种问题
hooks
除了上面的 signal 机制,还有 flask 通过 decorator 装饰出来的 hook 在各种时机调用.