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,
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM