• flask框架(二)——flask4剑客、flask配置文件的4种方式


    之前学习的Django有必备三板斧:render,HttpResponse,redirect,JsonResponse

    在flask也有,但是有些不同

    一、Flask4剑客

    1.直接返回字符串(return 后面加字符串)

    from flask import Flask
    app=Flask(__name__)
    
    @app.route('/')
    def  index():
       #直接返回字符串
        return  "ok"   #页面返回ok
      
    if __name__ == '__main__':
        app.run()

    2.返回html页面,渲染页面(render_template)

    from flask import Flask,render_template
    app=Flask(__name__)
    
    @app.route('/')
    def  index():
        #返回,渲染html
        name_dict={"name":"jason-gdx"}
        return render_template("index.html",name="jasongdx",name_dict=name_dict)  #返回index.html对应数据
    
    if __name__ == '__main__':
        app.run()

    注意:render_template()会去flask根目录下的templates里面寻找文件,所以给的参数路径时相对路径。

    3.跳转页面(redirect)

    from flask import Flask,redirect
    app=Flask(__name__)
    
    @app.route('/')
    def  index():
        #跳转页面
        return redirect("/login")
    
    if __name__ == '__main__':
        app.run()

    4.返回json数据(jsonify)

    from flask import Flask,jsonify
    app=Flask(__name__)
    
    @app.route('/')
    def  index():
        #返回json数据
        name_dict = [{'name': "jason-gdx"},{'name': "tank-sb"}]
        return  jsonify(name_dict)
    
    if __name__ == '__main__':
        app.run()

    二、flask配置文件的4种方式

    from  flask import Flask
    app=Flask(__name__)
    #第一种,这种方式只能配置两种(debug,secret_key) app.debug=True app.secret_key="123123"
    #第二种,以字典的形式 app.config['DEBUG']=True
    #第三种,以文件的形式 app.config.from_pyfile("settings.py") #第四种以类的形式(推荐) app.config.from_object('settings.DevelopmentConfig') @app.route('/login') def login(): print(123) return "ojbk_login" if __name__ == '__main__': app.run()

    settings.py

    class Config(object):
        DEBUG = False
        TESTING = False
        DATABASE_URI = 'sqlite://:memory:'
    
    
    class ProductionConfig(Config):
        DATABASE_URI = 'mysql://user@localhost/foo'
    
    
    class DevelopmentConfig(Config):
        DEBUG = True
    
    
    class TestingConfig(Config):
        TESTING = True

    flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为:

    {
            'DEBUG':                                get_debug_flag(default=False),  是否开启Debug模式
            'TESTING':                              False,                          是否开启测试模式
            'PROPAGATE_EXCEPTIONS':                 None,                          
            'PRESERVE_CONTEXT_ON_EXCEPTION':        None,
            'SECRET_KEY':                           None,
            'PERMANENT_SESSION_LIFETIME':           timedelta(days=31),
            'USE_X_SENDFILE':                       False,
            'LOGGER_NAME':                          None,
            'LOGGER_HANDLER_POLICY':               'always',
            'SERVER_NAME':                          None,
            'APPLICATION_ROOT':                     None,
            'SESSION_COOKIE_NAME':                  'session',
            'SESSION_COOKIE_DOMAIN':                None,
            'SESSION_COOKIE_PATH':                  None,
            'SESSION_COOKIE_HTTPONLY':              True,
            'SESSION_COOKIE_SECURE':                False,
            'SESSION_REFRESH_EACH_REQUEST':         True,
            'MAX_CONTENT_LENGTH':                   None,
            'SEND_FILE_MAX_AGE_DEFAULT':            timedelta(hours=12),
            'TRAP_BAD_REQUEST_ERRORS':              False,
            'TRAP_HTTP_EXCEPTIONS':                 False,
            'EXPLAIN_TEMPLATE_LOADING':             False,
            'PREFERRED_URL_SCHEME':                 'http',
            'JSON_AS_ASCII':                        True,
            'JSON_SORT_KEYS':                       True,
            'JSONIFY_PRETTYPRINT_REGULAR':          True,
            'JSONIFY_MIMETYPE':                     'application/json',
            'TEMPLATES_AUTO_RELOAD':                None,
        }
  • 相关阅读:
    cf 785#
    hdu 4920 Matrix multiplication
    poj 2443 Set Operation
    bzoj 3687: 简单题
    洛谷 三月月赛 C
    洛谷 三月月赛 B
    洛谷 三月月赛 A
    bzoj 3156: 防御准备
    bzoj 3437: 小P的牧场
    bzoj 3675: [Apio2014]序列分割
  • 原文地址:https://www.cnblogs.com/wangcuican/p/11837519.html
Copyright © 2020-2023  润新知