新闻项目-代码抽取

一丶配置信息抽取

(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

 

posted @ 2022-06-15 19:09  yoo丿  阅读(40)  评论(0)    收藏  举报