mannger.py的代码如下:
# coding=utf-8 from flask import Flask from flask_script import Manager from flask_migrate import Migrate,MigrateCommand from flask_sqlalchemy import SQLAlchemy app=Flask(__name__) # 创建manager对象 manager=Manager(app) # 创建数据库db db=SQLAlchemy(app) # 创建migtate对象 migrate=Migrate(app,db) # 给manager添加db命令, 以后需要通过python manage.py db init/migrate/upgrade 进行数据库的迁移操 manager.add_command(\'db\',MigrateCommand) if __name__ == \'__main__\': app.run()
config.py的代码如下:
# coding=utf-8 import redis \'\'\' 数据库的路径,redis的端口,session存放在redis中,调试模式,开发模式 \'\'\' class Confing(object): # flask-sqlalchemy使用的参数 SQLALCHEMY_DATABASE_URI="mysql://root:mysql@127.0.0.1/ihome" # 数据库 SQLALCHEMY_TRACK_MODIFICATIONS = True # 追踪数据库的修改行为,如果不设置会报警告,不影响代码的执行 #配置redis的数据 REDIS_PORT=6379 REDIS_HOST=\'127.0.0.1\' # 配置session存储到redis中 PERMANENT_SESSION_LIFETIME = 86400 # 单位是秒, 设置session过期的时间 SESSION_TYPE = \'redis\' # 指定存储session的位置为redis SESSION_USE_SIGNER = True # 对数据进行签名加密, 提高安全性 SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT) # 设置redis的ip和端口 class DevelopmentConfig(Confing): DEBUG=True class ProductionConfig(Confing): pass # 参数字典, 用来方便的加载调试模式 config_dict = { \'development\' : DevelopmentConfig, \'production\' : ProductionConfig }
ihome/__init__.py的原始代码如下:
# coding=utf-8 from flask_sqlalchemy import SQLAlchemy from flask import Flask from flask_session import Session from flask_wtf.csrf import CSRFProtect import redis #创建应用 app=Flask(__name__) # 创建数据库db db=SQLAlchemy(app) # 创建csrf csrf=CSRFProtect(app) # 创建redis redis_store=redis.StrictRedis(port=6379,host=\'127.0.0.1\') # 创建session Session(app)
ihome/__init__.py设计版 提供一个方法来创建一系列的。
# coding=utf-8 from flask_sqlalchemy import SQLAlchemy from flask import Flask from flask_session import Session from flask_wtf.csrf import CSRFProtect import redis from config import config_dict # 定义数据库db db=SQLAlchemy() # 定义csrf csrf=CSRFProtect() # 定义redis_store对象, 先设置为None redis_store=None def create_app(config_name): # 创建应用 app = Flask(__name__) # 从配置文件的字典中, 传入参数名字, 获取配置对象 config = config_dict[config_name] app.config.from_object(config) # 创建数据库 db.init_app(app) # 创建csrf csrf.init_app(app) # 创建redis global redis_store redis_store=redis.StrictRedis(port=config.REDIS_PORT,host=config.REDIS_HOST) # 创建Session Session(app)
manager.py要更改为create_app创建app
from ihome import create_app
# 通过create_app获取app
app = create_app(\'development\')
# coding=utf-8 from flask import Flask from flask_script import Manager from flask_migrate import Migrate,MigrateCommand from flask_sqlalchemy import SQLAlchemy from ihome import create_app # 通过create_app获取app app = create_app(\'development\') # 创建manager对象 manager=Manager(app) # 创建数据库db db=SQLAlchemy(app) # 创建migtate对象 migrate=Migrate(app,db) # 给manager添加db命令, 以后需要通过python manage.py db init/migrate/upgrade 进行数据库的迁移操 manager.add_command(\'db\',MigrateCommand) if __name__ == \'__main__\': app.run()