新闻项目-代码抽取
一丶配置信息抽取
(1)抽取config
创建一个config文件

将配置代码放入文件

抽取完成后导入Config类
1 from config import Config
(2)抽取app
创建一个python package来存放app


将app信息放入文件

抽取完后导入info中的app
1 from info import app
二丶工厂方式建立app环境
在config配置信息中加入3个工厂类并写入字典
1 class DevConfig(Config): 2 """开发环境""" 3 pass 4 5 class ProConfig(Config): 6 """生产环境""" 7 DEBUG = False 8 pass 9 10 class TestConfig(Config): 11 """测试环境""" 12 pass 13 14 configs = { 15 "dev":DevConfig, 16 "pro":ProConfig, 17 "test":TestConfig 18 }
在init文件中导入confis
1 from config import configs
创建函数写入工厂app
1 def create_app(Config): 2 app = Flask(__name__) 3 app.config.from_object(configs[Config]) 4 db = SQLAlchemy(app) # 创建mysql链接对象 5 sr = StrictRedis(port=configs[Config].SR_PORT,host=configs[Config].SR_HOST) #创建连接redis对象并将手动定义的地址和端口加入 6 CSRFProtect(app) #开启CSRF保护 7 Session(app) #配置redis的存放数据库 8 return app
在manage中创建app
1 app = create_app("dev")
三丶db问题解决
写完工厂app后会发现db是灰色的调用不了
创建db全局变量
1 SQLAlchemy() 2 def create_app(Config): 3 app = Flask(__name__) 4 db.init_app(app) 5 return app

浙公网安备 33010602011771号