标签: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")
标签:session 返回 日志记录 调用 mod set rom 工厂 obj
原文地址:http://blog.51cto.com/13914991/2171447