Пример #1
0
def create_app(config_name):
    # 配置日志
    setup_log(config_name)

    app = Flask(__name__)
    # 加载配置
    app.config.from_object(config[config_name])
    # 初始化数据库
    db.init_app(app)
    # 初始化redis存储对象
    global redis_store
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST,
                              port=config["development"].REDIS_PORT,
                              decode_responses=True)
    # 开启当前项目 CSRF 保护, 只做服务器验证功能
    # 帮我们做了: 从cookie中取出随机值, 从表单中取出随机值, 然后进行校验, 并且响应校验结果
    # 我们需要做: 1. 再界面加载的时候, 往cookie中添加一个csrf_token, 并且再表单中添加一个隐藏的csrf_token
    CSRFProtect(app)
    # 设置session保存位置
    Session(app)

    from info.utils.common import do_index_class
    # 添加自定义过滤器 什么时候使用过滤器,什么时候导入上面的
    app.add_template_filter(do_index_class, "index_class")

    from info.utils.common import user_login_data

    @app.errorhandler(404)
    @user_login_data
    def page_not_found(e):
        user = g.user
        data = {"user": user.to_dict() if user else None}
        return render_template('news/404.html', data=data)

    @app.after_request
    def after_request(response):
        # 生成随机的csrf_token值
        csrf_token = generate_csrf()
        # 设置一个cookie
        response.set_cookie("csrf_token", csrf_token)

        return response

    # 注册蓝图
    # 首页蓝图
    from info.modules.index import index_blu
    app.register_blueprint(index_blu)
    # 注册图片验证码蓝图
    from info.modules.passport import passport_blu
    app.register_blueprint(passport_blu)
    # 新闻详情页蓝图
    from info.modules.news import news_blu
    app.register_blueprint(news_blu)
    # 个人档案页蓝图
    from info.modules.profile import profile_blu
    app.register_blueprint(profile_blu)
    # 管理员登录页蓝图
    from info.modules.admin import admin_blu
    app.register_blueprint(admin_blu)
    return app
Пример #2
0
def get_app(config_name):

    # 根据开发环境设置日志等级
    setUpLogging(configs[config_name].LOGGING_LEVEL)

    app = Flask(__name__)

    app.config.from_object(configs[config_name])

    db.init_app(app)

    global redis_store
    redis_store = redis.StrictRedis(host=configs[config_name].REDIS_HOST,
                                    port=configs[config_name].REDIS_PORT)

    CSRFProtect(app)

    Session(app)

    app.url_map.converters['re'] = RegexConverter

    # 哪里注册蓝图就在哪里使用蓝图,避免某些变量还没存在就导入
    from api_1_0 import api
    app.register_blueprint(api, url_prefix='/api/1.0')

    from web_html import html_blue
    app.register_blueprint(html_blue)

    return app
Пример #3
0
def create_app(config_name):
    app = Flask(__name__)
    config = Config_dict[config_name]
    #调用日志方法
    log_file(config.LEVEL)
    app.config.from_object(config)
    db.init_app(app)
    global redis_store
    redis_store = redis.StrictRedis(host=Config.REDIS_HOST,
                                    port=Config.REDIS_PORT,
                                    decode_responses=True)
    Session(app)
    #开启CSRF保护之后,会对[POST,'PUT','PATCH','DELETE]类型的请求方法做校验
    #获取cookie中的csrfToken,获取headers请求头里的csrfToken做校验
    #开发者需要手动设置cookie和headers中的csrfToken
    #设置CSRF程序保护
    CSRFProtect(app)
    #首页蓝图注册app
    from info.modules.index import index_blu
    app.register_blueprint(index_blu)
    #验证蓝图注册app
    from info.modules.passport.views import passport_blu
    app.register_blueprint(passport_blu)

    #设置请求钩子afterrequest,每次请求完成之后,都会走该钩子装饰的方法
    @app.after_request
    def after_request(resp):
        #由CSRFProtect提供的一个generate_csrf方法生成csrf_token
        csrf_token = generate_csrf()
        resp.set_cookie("csrf_token", csrf_token)
        return resp

    #将过滤器添加到模板过滤器当中
    app.add_template_filter(do_index_filter, "index_filter")
    return app
Пример #4
0
def creat_app(ms="ts"):
    global db, rs
    app = Flask(__name__)
    app.config.from_object(zd[ms])
    db = SQLAlchemy(app=app)
    rs = StrictRedis(host=zd[ms].REDIS_HOST, port=zd[ms].REDIS_PORT)
    Session(app=app)
    app.add_template_filter(djpmglq, name='cssxz')
    # print(zd[ms].DEBUG)

    #scrf 开启
    CSRFProtect(app)
    from csh import models
    #开启日志
    setup_log()
    # @app.errorhandler(404)
    # def cwxd(e):
    #     return render_template('news/404.html')
    @app.after_request
    def szscrf(resp):
        token = generate_csrf()
        # session['field_name']=token
        # resp.headers['X-CSRFToken'] = token
        resp.set_cookie('X-CSRFToken', token)
        return resp

    # @app.after_request
    # def after_request(response):
    #     from flask_wtf.csrf import generate_csrf
    #     token = generate_csrf()
    #
    #     response.set_cookie('csrf_token', token)
    #
    #     return response
    return app, db
Пример #5
0
def creat_app(config_name):
    # 配置日志,并且传入配置名字,以便能获取到指定配置所对应的日志等级
    setup_log(config_name)
    # 创建Flask对象
    app = Flask(__name__)
    # 1.加载配置
    app.config.from_object(config[config_name])
    # 通过app初始化
    db.init_app(app)
    # 3.初始化 redis 存储对象
    global redis_store
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST, port=config[config_name].REDIS_PORT,decode_responses=True)
    # 4.开启当前项目的 CSRF 保护,只做服务器验证功能(所有的请求都会经过before_request请求勾子)
    CSRFProtect(app)
    # 5.设置session保存指定位置
    Session(app)

    # 添加自定义过滤器
    from info.utils.common import do_index_class
    app.add_template_filter(do_index_class ,"index_class")

    from info.utils.common import user_login_data
    @app.errorhandler(404)
    @user_login_data
    def page_not_found(e):
        user = g.user
        data = {"user" : user.to_dict() if user else None}
        return render_template("news/404.html",data=data)

    @app.after_request
    def after_request(response):
        # 生成随机的csrf_token的值
        csrf_token = generate_csrf()
        # 设置一个cookie
        response.set_cookie("csrf_token",csrf_token)
        return response

    # 注册蓝图
    # 什么时候用什么时候导入:index_blu(避免循环导入)
    from info.modules.index import index_blu
    app.register_blueprint(index_blu)

    from info.modules.passport import passport_blu
    app.register_blueprint(passport_blu)

    from info.modules.news import news_blu
    app.register_blueprint(news_blu)

    from info.modules.profile import profile_blu
    app.register_blueprint(profile_blu)

    from info.modules.admin import admin_blu
    app.register_blueprint(admin_blu,url_prefix="/admin")

    return app
Пример #6
0
def cread_info(ms='ts'):
    app = Flask(__name__)
    app.config.from_object(zd[ms])
    # 初始化
    db = SQLAlchemy(app=app)
    rs = StrictRedis(host=zd[ms].REDIS_HOST, port=zd[ms].REDIS_PORT)
    Session(app=app)
    #scrf 开启
    CSRFProtect(app)
    setup_log(zd[ms])  #日志
    return app, db
Пример #7
0
def create_app(config_name):
    # 配置日志,并且传入配置名字,以便能获取到指定配置所对应的日志等级
    setup_log(config_name)
    # 创建Flask对象
    app = Flask(__name__)
    # 加载配置
    app.config.from_object(config[config_name])
    # 通过app初始化
    db.init_app(app)
    # 初始化 redis 存储对象
    global redis_store
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST,
                              port=config[config_name].REDIS_PORT,
                              decode_responses=True)
    # 开启当前项目 CSRF 保护,只做服务器验证功能
    # 帮我们做了:从cookie中取出随机值,从表单中取出随机,然后进行校验,并且响应校验结果
    # 我们需要做:1. 在返回响应的时候,往cookie中添加一个csrf_token,2. 并且在表单中添加一个隐藏的csrf_token
    # 而我们现在登录或者注册不是使用的表单,而是使用 ajax 请求,所以我们需要在 ajax 请求的时候带上 csrf_token 这个随机值就可以了
    CSRFProtect(app)
    # 设置session保存指定位置
    Session(app)

    # 初始化数据库
    #  在Flask很多扩展里面都可以先初始化扩展的对象,然后再去调用 init_app 方法去初始化
    from info.utils.common import do_index_class
    # 添加自定义过滤器
    app.add_template_filter(do_index_class, "index_class")

    from info.utils.common import user_login_data

    @app.errorhandler(404)
    @user_login_data
    def page_not_fount(e):
        user = g.user
        data = {"user": user.to_dict() if user else None}
        return render_template('news/404.html', data=data)

    # 向cookie中设置csrf_token
    @app.after_request
    def after_request(response):
        # 生成随机的csrf_token的值
        csrf_token = generate_csrf()
        # 设置一个cookie
        response.set_cookie("csrf_token", csrf_token)
        return response

    # 注册蓝图
    from info.modules.index import index_blu
    app.register_blueprint(index_blu)

    from info.modules.passport import passport_blue
    app.register_blueprint(passport_blue)

    return app
Пример #8
0
def create_app(config_name):
    # 配置日志
    setup_logging(config_name)
    # 创建Flask对象
    app = Flask(__name__)
    # 加载项目配置
    app.config.from_object(config[config_name])
    # 通过app初始化
    db.init_app(app)
    # 初始化redis
    global redis_sr
    redis_sr = StrictRedis(host=config[config_name].REDIS_HOST,
                           port=config[config_name].REDIS_PORT,
                           decode_responses=True)
    # 开启CSRF保护
    CSRFProtect(app)
    # 初始化session
    Session(app)

    from info.utils.common import do_index_class
    app.add_template_filter(do_index_class, "index_class")

    from info.utils.common import user_login_data

    @app.errorhandler(404)
    @user_login_data
    def page_not_found(err):
        user = g.user
        data = {"user": user.to_dict() if user else None}
        return render_template("news/404.html", data=data)

    @app.after_request
    def after_request(response):
        # 生成csrf_token并存储到cookie中
        csrf_token = generate_csrf()
        response.set_cookie("csrf_token", csrf_token)

        return response

    from info.modules.index import index_blu
    app.register_blueprint(index_blu)

    from info.modules.passport import passport_blu
    app.register_blueprint(passport_blu)

    from info.modules.news import news_blu
    app.register_blueprint(news_blu)

    from info.modules.profile import profile_blu
    app.register_blueprint(profile_blu)

    from info.modules.admin import admin_blu
    app.register_blueprint(admin_blu)
    return app
Пример #9
0
def create_app(config_name):
    setup_log(config_name)
    app = Flask(__name__)
    app.config.from_object(config[config_name])

    db.init_app(app)
    global redis_store
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST,
                              port=config[config_name].REDIS_PORT,
                              decode_responses=True)
    # 帮我们做了:从cookie中取出随机值,从表单中取出随机,然后进行校验,并且响应校验结果
    # 我们需要做:1. 在返回响应的时候,往cookie中添加一个csrf_token,2. 并且在表单中添加一个隐藏的csrf_token
    # 而我们现在登录或者注册不是使用的表单,而是使用 ajax 请求,所以我们需要在 ajax 请求的时候带上 csrf_token 这个随机值就可以了
    CSRFProtect(app)

    # 设置session保存指定位置
    Session(app)

    from info.utils.common import user_login_data

    @app.errorhandler(404)
    @user_login_data
    def page_not_found(e):
        user = g.user
        data = {"user": user.to_dict() if user else None}
        return render_template("news/404.html", data=data)

    @app.after_request
    def after_request(response):
        # 生成随机的csrf_token的值
        csrf_token = generate_csrf()
        # 设置一个cookie
        response.set_cookie("csrf_token", csrf_token)
        return response

    from info.utils.common import do_index_class
    app.add_template_filter(do_index_class, "index_class")
    # 注册蓝图
    from info.modules.index import index_blu
    app.register_blueprint(index_blu)

    from info.modules.passport import passport_blu
    app.register_blueprint(passport_blu)

    from info.modules.news import news_blu
    app.register_blueprint(news_blu)

    from info.modules.profile import profile_blu
    app.register_blueprint(profile_blu)

    from info.modules.admin import admin_blu
    app.register_blueprint(admin_blu, url_prefix="/admin")

    return app
Пример #10
0
def create_app(config):
    # 配置日志
    setup_log(config)
    app = Flask(__name__)
    app.config.from_object(config_dict[config])
    db.init_app(app)
    global redis_store
    redis_store = StrictRedis(host=constants.REDIS_HOST,
                              port=constants.REDIS_PORT,
                              decode_responses=True)
    CSRFProtect(app)
    Session(app)
    return app
Пример #11
0
def create_app(config_name):
    # 配置日志,并且传入配置名字,一边获取到指定配置所对应的日志等级
    setup_log(config_name)
    # 逻辑业务(需要哪些辅助工具)
    app = Flask(__name__)

    # 加载配置(从配置对象中加载)
    app.config.from_object(config[config_name])
    # 通过app初始化将app中的数据库参数传递到db里面
    db.init_app(app)
    # 初始化redis存储对象
    global redis_store
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST,
                              port=config[config_name].REDIS_PORT,
                              decode_responses=True)
    # 开启当前项目CSRF保护,只做服务器验证功能
    CSRFProtect(app)
    # 设置session保存指定位置
    Session(app)
    # 初始化数据库 在Flask很多扩展里面都可以先初始化扩展的对象,然后再去调用init_app方法去初始化
    from info.utils.common import do_index_class
    app.add_template_filter(do_index_class, "index_class")

    from info.utils.common import user_login_data

    @app.errorhandler(404)
    @user_login_data
    def page_not_fount(e):
        user = g.user
        data = {"user": user.to_dict() if user else None}
        return render_template('news/404.html', data=data)

    @app.after_request
    def after_request(response):
        csrf_token = generate_csrf()
        response.set_cookie("csrf_token", csrf_token)
        return response

    # 注册蓝图
    from info.modules.index import index_blu
    app.register_blueprint(index_blu)
    from info.modules.passport import passport_blu
    app.register_blueprint(passport_blu)
    from info.modules.news import news_blu
    app.register_blueprint(news_blu)
    from info.modules.profile import profile_blu
    app.register_blueprint(profile_blu)
    from info.modules.admin import admin_blu
    app.register_blueprint(admin_blu, url_prefix="/admin")

    return app
Пример #12
0
def create_app(config_name):
    setup_log(config_name)
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    db.init_app(app)
    global redis_store
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST,
                              port=config[config_name].REDIS_PORT,
                              decode_responses=True)
    CSRFProtect(app)
    Session(app)

    from info.utils.common import do_index_class
    #添加自定义过滤器
    app.add_template_filter(do_index_class, "index_class")

    from info.utils.common import user_login_data

    @app.errorhandler(404)
    @user_login_data
    def page_not_found(e):
        user = g.user
        data = {"user": user.to_dict() if user else None}
        return render_template('news/404.html', data=data)

    @app.after_request
    def after_request(response):
        # 调用函数生成 csrf_token
        csrf_token = generate_csrf()
        # 通过 cookie 将值传给前端
        response.set_cookie("csrf_token", csrf_token)
        return response

    #注册蓝图
    from info.modules.index import index_blu
    app.register_blueprint(index_blu)

    from info.modules.passport import passport_blu
    app.register_blueprint(passport_blu)

    from info.modules.news import news_blu
    app.register_blueprint(news_blu)

    from info.modules.profile import profile_blu
    app.register_blueprint(profile_blu)

    from info.modules.admin import admin_blu
    app.register_blueprint(admin_blu, url_prefix='/admin')

    return app
Пример #13
0
def creat_app(config_name):
    app = Flask(__name__)
    # 加载配置
    app.config.from_object(config[config_name])
    # 通过app初始化
    db.init_app(app)
    # 初始化redis存储对象
    redise_store = StrictRedis(host=config[config_name].REDIS_HOST,
                               port=config[config_name].REDIS_PORT)
    # 开启当前项目CSRF保护
    CSRFProtect(app)
    # 设置session保存指定位置
    Session(app)

    return app
Пример #14
0
def create_app(config_name):
    # setup_log(config_name)
    app = Flask(__name__, )
    app.config.from_object(config[config_name])
    db.init_app(app)
    global redis_store
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST,
                              port=config[config_name].REDIS_PORT,
                              decode_responses=True)
    CSRFProtect(app)
    # 帮我们做了, 从cookie中取出随机值,从表单中取出随机值,然后进行校验
    # 但是没做表单和cookie中设置值 在响应中设置afert_response
    # 所以我们需要在cookie中csrf_token, 在表单中加入隐藏标签
    Session(app)
    from info.utils.common import do_index_class
    app.add_template_filter(do_index_class, "index_class")

    @app.after_request
    def after_request(response):
        csrf_token = generate_csrf()
        response.set_cookie("csrf_token", csrf_token)
        return response

    # from info.utils.common import do_index_class
    # 注册蓝图
    from info.modules.index import index_blu
    app.register_blueprint(index_blu)
    from info.modules.passport import passport_blu
    app.register_blueprint(passport_blu)
    from info.modules.news import detail_blu
    app.register_blueprint(detail_blu)
    from info.modules.profile import profile_blu
    app.register_blueprint(profile_blu)
    from info.modules.admin import admin_blu
    app.register_blueprint(admin_blu)

    from info.utils.common import user_login_data

    @app.errorhandler(404)
    @user_login_data
    def page_not_found(_):
        user = g.user
        data = {"user_info": user.to_dict() if user else None}
        return render_template('news/404.html', data=data)

    return app
Пример #15
0
def create_app(config_name):
    set_log(config_name)
    app = Flask(__name__)
    app.config.from_object(config[config_name])

    db.init_app(app)
    global redis_stroe
    redis_stroe = StrictRedis(host=config[config_name].REDIS_PORT,
                              port=config[config_name].REDIS_PORT,
                              decode_responses=True)
    Session(app)
    # csrf 保护 需要手动设置csrf_touken
    CSRFProtect(app)
    from .modules.index.views import index_blu
    app.register_blueprint(index_blu)

    return app
Пример #16
0
def create_app(class_name):
    app = Flask(__name__)
    config_class = config_maps.get(class_name)
    app.config.from_object(config_class)  # 数据库最先加载
    db.init_app(app)
    global redis_store
    redis_store = redis.StrictRedis(host='127.0.0.1',
                                    port=6379,
                                    decode_responses=True)
    Session(app)
    CSRFProtect(app)

    @app.after_request
    def after_request(response):
        csrf_token = generate_csrf()
        response.set_cookie('csrf_token', csrf_token)
        return response

    @app.errorhandler(404)
    @user_login_data
    def page_not_found(_):
        user = g.user
        data = {'user_info': user.to_dict() if user else None}
        return render_template('news/404.html', data=data)

    from info.utils.common import do_index
    # 添加一个模板过滤器
    app.add_template_filter(do_index, 'indexClass')

    from info.admin import admin_blue
    app.register_blueprint(admin_blue)

    from info.user import profile_blue
    app.register_blueprint(profile_blue)

    from info.index import index_blue
    app.register_blueprint(index_blue)  # 要注册方法.

    from info.passport import passport_blue
    app.register_blueprint(passport_blue)  # 要注册方法.

    from info.news import news_blue
    app.register_blueprint(news_blue)

    return app
Пример #17
0
def create_app(u_selected_config):
    app = Flask(__name__)
    set_up_log(u_selected_config)

    app.config.from_object(seleceted_config[u_selected_config])
    app.add_template_filter(do_index_class, "indexClass")

    @app.after_request
    def after_request(response):
        # 调用函数生成 csrf_token
        csrf_token = generate_csrf()
        # 通过 cookie 将值传给前端
        response.set_cookie("csrf_token", csrf_token)
        return response

    CSRFProtect(app)
    Session(app)

    db.init_app(app)
    # db = SQLAlchemy(app)
    # @app.errorhandler(404)
    # @check_user
    # def page_notfound(e):
    #     user=g.user
    #     data={
    #         'user':user.to_dict()
    #     }
    #     return render_template('others/404.html',data=data)

    global redis_store

    redis_store = redis.StrictRedis(host=My_config.REDIS_HOST,
                                    port=My_config.REDIS_PORT)
    from info.moduls.index import index_
    from info.moduls.passport import passport_
    from info.moduls.news import news_blu
    from info.moduls.profile import profile_blu
    from info.moduls.admin import admin_blu

    app.register_blueprint(profile_blu)
    app.register_blueprint(index_)
    app.register_blueprint(passport_)
    app.register_blueprint(news_blu)
    app.register_blueprint(admin_blu)
    return app
Пример #18
0
def create_app(config_name):
    app = Flask(__name__)
    config = config_dict.get(config_name)
    app.config.from_object(config)
    db = SQLAlchemy(app, "db")
    db.init_app(app)
    global  redis_store
    redis_store = redis.StrictRedis(host=config.REDIS_HOST, port=config.REDIS_PORT)

    Session(app)
    CSRFProtect(app)
    app.url_map.converters["re"] = RegexConverter

    from ihome.api_1_0 import api
    app.register_blueprint(api)
    from ihome.web_html import web_html
    app.register_blueprint(web_html)
    return app
Пример #19
0
def create_app(config_name):
    # 配置日志
    setup_log(config_name)
    # 创建flsk对象
    app = Flask(__name__)
    # 加载配置
    app.config.from_object(config[config_name])
    # 通过app初始化
    db.init_app(app)
    # 初始化redis存储对象
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST,
                              port=config[config_name].REDIS_PORT)
    # 开启当前项目csrf保护,只做服务器验证功能
    CSRFProtect(app)
    # 设置session保存指定位置
    Session(app)

    # 注册蓝图
    app.register_blueprint(index_blu)
    return app
Пример #20
0
def creat_app(config_name):
    # 配置日志, 并且传入配置名字, 以便能获取到指定配置所对应的日志等级
    setup_log(config_name)

    app = Flask(__name__)

    app.config.from_object(config[config_name])
    db.init_app(app)
    # 用来存储redis数据
    global redis_store
    redis_store = redis.StrictRedis(host=config[config_name].REDIS_HOST, port=config[config_name].REDIS_PORT)
    # 配置CSRF
    CSRFProtect(app)

    Session(app)

    # 注册蓝图
    app.register_blueprint(index_blu)

    return app
Пример #21
0
def create_app(config_name):
    # 配置日志,并且传入配置名字,以便能获取到指定配置所对应的日志等级
    setup_log(config_name)
    # 创建Flask对象
    app = Flask(__name__)
    # 加载配置
    app.config.from_object(config[config_name])
    # 通过app初始化
    db.init_app(app)
    # 初始化 redis 存储对象
    global redis_store
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST,
                              port=config[config_name].REDIS_PORT,
                              decode_responses=True)
    # 开启当前项目 CSRF 保护,只做服务器验证功能
    # CSRFProtect(app)
    # 帮我们做了:从cookie中取出随机值,从表单中取出随机,然后进行校验,并且响应校验结果
    # 我们需要做:1. 在返回响应的时候,往cookie中添加一个csrf_token,2. 并且在表单中添加一个隐藏的csrf_token
    # 而我们现在登录或者注册不是使用的表单,而是使用 ajax 请求,所以我们需要在 ajax 请求的时候带上 csrf_token 这个随机值就可以了
    CSRFProtect(app)
    # 设置session保存指定位置
    Session(app)

    @app.after_request
    def after_request(response):
        # 生成随机的csrf_token的值

        csrf_token = generate_csrf()
        # 设置一个cookie
        response.set_cookie("csrf_token", csrf_token)

        return response

    # 注册蓝图
    from info.modules.index import index_blu
    app.register_blueprint(index_blu)

    from info.modules.passport import passport_blu
    app.register_blueprint(passport_blu)

    return app
Пример #22
0
def create_app(config_name):
    #     配置日志,并且传入配置名字,以便能获取到指定配置锁对应的日志等级
    setup_log(config_name)
    # 创建flask对象
    app = Flask(__name__)
    #     加载配置
    app.config.from_object(config[config_name])
    # 通过app初试化
    db.init_app(app)
    #     初始化redis存储对象
    global redis_store
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST,
                              port=config[config_name].REDIS_PORT)
    # 开启当前项目 CSRF 保护,只做服务器验证功能
    CSRFProtect(app)
    # 设置session保存指定位置
    Session(app)
    #   注册蓝图
    from day02.info.modules.views import index_blu
    app.register_blueprint(index_blu)
    return app
Пример #23
0
def create_app(config_name):
    setup_log(config_name)
    """通过传入不同的配置名字,初始化其对应配置的应用实例"""
    app = Flask(__name__)

    app.config.from_object(config[config_name])

    db.init_app(app)

    global redis_store
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST,
                              port=config[config_name].REDIS_PORT)

    CSRFProtect(app)

    Session(app)

    from info.modules.index import index_blu
    app.register_blueprint(index_blu)

    return app
Пример #24
0
def create_app(env_name):
    app = Flask(__name__)

    # 使用db,关联app
    db.init_app(app)

    # 加载配置信息
    config = config_dict[env_name]
    app.config.from_object(config)

    # 创建redis对象
    global redis_store
    redis_store = redis.StrictRedis(host=config.REDIS_HOST, port=config.REDIS_PORT, decode_responses=True)

    # 设置csrf对app进行保护
    CSRFProtect(app)

    # 初始化Session
    Session(app)

    return app
Пример #25
0
def Create_app(config):
    app = Flask(__name__)
    # 配置app
    app.config.from_object(config)
    db.init_app(app)
    # 注册蓝图
    app.register_blueprint(views_blueprint)
    app.register_blueprint(user_blueprint)
    app.register_blueprint(admin_blueprint)
    CSRFProtect(app)
    Session(app)

    import logging
    from logging.handlers import RotatingFileHandler
    # 设置日志的记录等级
    logging.basicConfig(level=logging.DEBUG)  # 调试debug级
    # 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小、保存的日志文件个数上限
    file_log_handler = RotatingFileHandler(config.BASE_DIR + "/logs/xjzx.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)
    app.logger_xjzx = logging

    # 配置redis
    host, port, redis_db = app.config.get('REDIS_HOST'), app.config.get(
        'REDIS_PORT'), app.config.get('REDIS_DB')
    app.redis_client = redis.StrictRedis(host=host, port=port, db=redis_db)

    # 处理404错误
    @app.errorhandler(404)
    def e404(e):
        return render_template('news/404.html')

    return app
Пример #26
0
def create_app(config_name):
    setup_log(config_name)
    app = Flask(__name__)
    app.config.from_object(config[config_name])

    # db = SQLAlchemy(app)
    db.init_app(app)
    global redis_store
    redis_store = StrictRedis(host=config[config_name].REDIS_HOST,
                              port=config[config_name].REDIS_PORT,
                              decode_responses=True)

    # 开启csrf保护,已经做了校验功能
    CSRFProtect(app)
    from info.utils.common import do_index_class
    app.add_template_filter(do_index_class, "index_class")

    @app.after_request
    def after_request(response):
        csrf_token = generate_csrf()
        response.set_cookie("csrf_token", csrf_token)
        return response

    # 在app注册蓝图
    from info.modules.index import index_blu
    app.register_blueprint(index_blu)

    from info.modules.passport import passport_blu
    app.register_blueprint(passport_blu)
    from info.modules.news import news_blu
    app.register_blueprint(news_blu)
    from info.modules.profile import profile_blu
    app.register_blueprint(profile_blu)
    from info.modules.admin import admin_blu
    app.register_blueprint(admin_blu)

    # 设置session保存位置
    Session(app)
    return app
Пример #27
0
def get_app(config_name):

    app = Flask(__name__)

    # 加载配置参数
    app.config.from_object(configs[config_name])

    # 创建链接到mysql数据库的对象
    # db = SQLAlchemy(app)
    # 第二步:建立app与mysql的连接
    db.init_app(app)

    # 创建连接到redis数据库的对象
    redis_store = redis.StrictRedis(host=configs[config_name].REDIS_HOST,
                                    port=configs[config_name].REDIS_PORT)

    # 开启CSRF保护:flask需要自己讲csrf_token写入到浏览器的cookie
    CSRFProtect(app)

    # 使用flask_session将session数据写入到redis数据库
    Session(app)

    return app
Пример #28
0
def create_app(config_name):
    """通过传入不同的配置名字,初始化其对应配置的应用实例"""
    setup_log(config_name)  # 配置项目日志
    app = Flask(__name__)

    app.config.from_object(config[config_name])  # 配置,是config.py文件中的字典config
    db.init_app(app)  # 配置数据库
    global redis_store
    redis_store = redis.StrictRedis(
        host=config[config_name].REDIS_HOST,
        port=config[config_name].REDIS_PORT)  # 配置redis
    CSRFProtect(app)  # 开启csrf保护
    Session(app)  # 设置session保存位置

    # 注册蓝图
    from info.modules.index import index_blu
    app.register_blueprint(index_blu)

    # 注册passport蓝图
    from info.modules.passport import passport_blu
    app.register_blueprint(passport_blu)

    return app
Пример #29
0
    # 设置需要过期
    SESSION_PERMANENT = False
    # 设置过期时间
    PERMANENT_SESSION_LIFETIME = 86400 * 2


app = Flask(__name__)
# 加载配置
app.config.from_object(Config)

# 初始化数据库
db = SQLAlchemy(app)
# 初始化redis存储对象
redis_store = StrictRedis(host=Config.REDIS_HOST, port=Config.REDIS_PORT)
# 开启当前项目CSRF保护,只做服务器验证功能
CSRFProtect(app)
# 设置session保存指定位置
Session(app)

manager = Manager(app)


@app.route('/')
def index():
    session['name'] = 'itheima'
    return 'hello world!333'


if __name__ == '__main__':
    manager.run()
Пример #30
0
from flask.ext.session import Session
from flask.ext.wtf import CSRFProtect
from flask.ext.sqlalchemy import SQLAlchemy
from flask.helpers import make_response

from config import config_dict

from ihome.utils.commons import RegexConverter

db = SQLAlchemy()

#创建redis对象
redis_store = None

#创建csrf对象
csrf = CSRFProtect()

#log日志记录功能(产生一些文件专门用来记录调试,访问信息)

#使用log文件进行记录日志信息的时候,有四种级别
# debug < info < warn < error
# 设置日志的记录等级
logging.basicConfig(level=logging.DEBUG)  # 调试debug级
# 创建日志记录器,指明日志保存的路径、每个日志文件的最大大小、保存的日志文件个数上限
file_log_handler = RotatingFileHandler("logs/log",
                                       maxBytes=1024 * 1024 * 100,
                                       backupCount=10)
# 创建日志记录的格式                 日志等级    输入日志信息的文件名 行数    日志信息
formatter = logging.Formatter(
    '%(levelname)s %(filename)s:%(lineno)d %(message)s')
# 为刚创建的日志记录器设置日志记录格式