码迷,mamicode.com
首页 > 其他好文 > 详细

Flask的之工厂模式

时间:2018-09-07 14:21:36      阅读:428      评论:0      收藏:0      [点我收藏+]

标签:session   返回   日志记录   调用   mod   set   rom   工厂   obj   

# info的__init__.py文件 from logging.handlers import RotatingFileHandler import redis from flask import Flask from flask_session import Session from flask_sqlalchemy import SQLAlchemy from flask_wtf import CSRFProtect import logging from config import config_map # 方法一,设置全局变量 redis_store = None # 方法二,分步骤 db = SQLAlchemy() def create_app(config_name): # 配置项目日志 setup_log(config_name) app= Flask(__name__) app.config.from_object(config_map[config_name]) # 数据库的初始化 db.init_app(app) # 开启csrf保护 CSRFProtect(app) # 配置redis global redis_store redis_store = redis.StrictRedis(host=config_map[config_name].REDIS_HOST, port=config_map[config_name].REDIS_PORT) # 配置Session Session(app) from info.modules.index import index_blue app.register_blueprint(index_blue) # 返回app,在manage当中可以调用 return app def setup_log(config_name): """配置日志""" # 设置日志的记录等级 logging.basicConfig(level=config_map[config_name].LOG_LEVEL) # 调试debug级 # 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小、保存的日志文件个数上限 file_log_handler = RotatingFileHandler("logs/log", maxBytes=1024 * 1024 * 100, backupCount=10) # 创建日志记录的格式 日志等级 输入日志信息的文件名 行数 日志信息 formatter = logging.Formatter(‘%(levelname)s %(filename)s:%(lineno)d %(message)s‘) # 为刚创建的日志记录器设置日志记录格式 file_log_handler.setFormatter(formatter) # 为全局的日志工具对象(flask app使用的)添加日志记录器 logging.getLogger().addHandler(file_log_handler)
# config文件
import logging
import redis

class MyConfig(object):
    DEBUG = True
    # 默认日志等级
    LOG_LEVEL = logging.DEBUG

    # 配置SECRET_KEY
    SECRET_KEY = "EjpNVSNQTyGi1VvWECj9TvC/+kq3oujee2kTfQUs8yCM6xX9Yjq52v54g+HVoknA"

    # 数据库的配置信息
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/flask_job_project"
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    # 配置常量
    REDIS_HOST = ‘127.0.0.1‘
    REDIS_PORT = 6379

    # flask_session的配置信息
    SESSION_TYPE = "redis" # 指定 session 保存到 redis 中
    SESSION_USE_SIGNER = True # 让 cookie 中的 session_id 被加密签名处理
    SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT) # 使用 redis 的实例
    PERMANENT_SESSION_LIFETIME = 86400 # session 的有效期,单位是秒

class ProductionConfig(MyConfig):
    DEBUG = False
    """生产模式下的配置"""
    LOG_LEVEL = logging.ERROR

class DevelopmentConfig(MyConfig):
    pass

config_map = {
    "development":DevelopmentConfig,
    "production":ProductionConfig,
}
# manage.py文件,创建app时,添加参数
app= create_app("development")

Flask的之工厂模式

标签:session   返回   日志记录   调用   mod   set   rom   工厂   obj   

原文地址:http://blog.51cto.com/13914991/2171447

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!