• flask使用及返回值、配置文件的四种方式


    一、什么是flask?

    1.flask是web框架,与django框架一样是web框架

    2.和django一样,是同步框架

    3.jinjia2模版

    4.werkzeug(服务通过werkzeug来启动)

    werkaeug简介

    Werkzeug是一个WSGI工具包,他可以作为一个Web框架的底层库。werkzeug不是一个web服务器,

    也不是一个web框架,而是一个工具包,官方的介绍说是一个WSGI工具包,他可以作为一个Web框

    架的底层库,因为它封装好了很多Web框架的东西,例如Requst,Response等等。

    代码示例:

    from werkzeug.wrappers import Response,Request
    
    @Request.application
    def hello(request):
        return Response('hello')
    
    if __name__ == '__main__':
        from werkzeug.serving import run_simple
        run_simple('localhost',4000,hello)

    二、flask使用

    安装flask

    pip3 install flask

    使用

    1.创建flask对象

    2.创建路由

    运行

    三.flask的4种方法

    1.直接返回字符串

     

    2.返回html(render_template方法

    第一种

    第二种

     

     

    3.返回json数据(jsonify方法)

     

     

    4.跳转页面

    四.flask文件4种配置方式

    #通过py文件配置
    app.config.from_pyfile("python文件名称")
    如:
    settings.py
    DEBUG = True
    
    app.config.from_pyfile("settings.py")
    #通过环境变量配置
    app.config.from_envvar("环境变量名称")
    #app.config.from_pyfile(os.environ['YOURAPPLICATION_SETTINGS'])
    环境变量的值为python文件名称名称,内部调用from_pyfile方法
    
    app.config.from_json("json文件名称")
    JSON文件名称,必须是json格式,因为内部会执行json.loads
    
    app.config.from_mapping({'DEBUG': True})
    字典格式
    
    app.config.from_object("python类或类的路径")
    
    app.config.from_object('pro_flask.settings.TestingConfig')
    
    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
    
    
    PS: 从sys.path中已经存在路径开始写
    
    PS: settings.py文件默认路径要放在程序root_path目录,如果instance_relative_config为True,则就是instance_path目录(Flask对象init方法的参数)

    配置方式1

    配置方式2

    配置方式3

     

    配置方式3

     

     其他

     {
            '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,
        }
  • 相关阅读:
    解决:Cuda安装后找不到安装文件目录
    学习论文:Eyeriss v1
    AOD-NET除雾算法
    学习论文AOD-Net:All-in-One Dehazing Network
    学习ResNeXt
    CentOS-7.6-ARM 离线安装部署FastDFS
    CentOS ARM离线安装部署Mysql5.6.44
    NFS+SnapShot快照式备份迁移ES索引过程
    《无限可能:快速唤醒你的学习脑》
    Oracle用sqlplus无法登陆?
  • 原文地址:https://www.cnblogs.com/xiongying4/p/11837692.html
Copyright © 2020-2023  润新知