栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Flask项目】代码抽取 # 2

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Flask项目】代码抽取 # 2

上部分我们将所有的代码都写在了一个文件中,

现在我们将它们抽取出来保存在不同的文件中,方便后续的修改与维护。

抽取Config:
# config.py

from redis import StrictRedis


class Config(object):
    """ 配置信息 """
    DEBUG = True
    _DATAbase_URI = "mysql://root:123456@127.0.0.1:3306/news_20"
    SQLALSQLALCHEMYCHEMY_TRACK_MODIFICATIONS = False
    REDIS_HOST = "127.0.0.1"
    REDIS_POST = 6379
    SECRET_KEY = "a1b2c3d4"
    SESSION_TYPE = "redis"
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_POST)
    SESSION_USE_SIGNER = True
    PERMANENT_SESSION_LIFETIME = 60*60*24

在使用配置信息的过程中会发现,往往会在不同的使用环境下需要不同的配置。

大体可分为三个环境:开发环境,生产环境,测试环境,

因此,通过继承的方式:

# config.py


class DevelopmentConfig(Config):
    """开发环境"""
    pass


class ProductionConfig(Config):
    """生产环境"""
    DEBUG = False


class UnittestConfig(Config):
    """测试环境"""
    pass


# 用于传参选择环境
config_names = {
    "dev": DevelopmentConfig,
    "pro": ProductionConfig,
    "uni": UnittestConfig
}
抽取创建/操作app:

将创建app的过程封装进函数。

将db套 SQLAlchemy 的空壳,在创建app的函数同时对db进行初始化。

config_name传参选择使用哪种环境。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_wtf import CSRFProtect
from flask_session import Session
from redis import StrictRedis
from config import config_names  # 对应config.py

db = SQLAlchemy()


def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config_names[config_name])
    db.init_app(app)
    rs = StrictRedis(host=config_names[config_name].REDIS_HOST, port=config_names[config_name].REDIS_POST)
    CSRFProtect(app)
    Session(app)
    return app
开启服务主函数:
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from info import create_app, db


app = create_app("dev")
manager = Manager(app)
Migrate(app, db)
manager.add_command("mysql", MigrateCommand)


if __name__ == '__main__':
    manager.run()
文件夹展示:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308948.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号