Flask 3のリクエストと応答


二.要求と応答
1、HTTP方法
GET:         :               。        。
POST:         :   URL         。  ,        
                。   HTML                。

2、プログラムと要求コンテキスト
要求コンテキスト:
from flask import request
@app.route('/useragent/')
def userAgent():
    user_agent = request.headers.get('User-Agent')
    return '

Your browser is %s

' % user_agent

プログラムコンテキスト:
from flask import current_app
# print('current_app.name:',current_app.name)
app_ctx = app.app_context()
app_ctx.push()
current_app.name
app_ctx.pop()
              current_app.name      ,       
        。
  ,         app.app_context()           。    ,
             :
1.       :                ,           
          。      ,             ,    
  。
  • 第2の方法は、app_を明示的に呼び出すことである.context()メソッド:
  • from flask import Flask, current_app
    app = Flask(__name__)
    with app.app_context():
        # within this block, current_app points to app.
        print current_app.name

    3、応答
    Flaskはビュー関数を呼び出すと、応答の内容として値を返します.
    @app.route('/')
    def index():
        return '

    Bad Request

    ', 400

    ビュー関数の戻り値は応答です
    メタグループを返さない場合は、Flaskビュー関数はResponseオブジェクトを返すこともできます.make_response()関数は、1つ以上のパラメータ(ビュー関数の戻り値と同じ)を受け入れ、Responseオブジェクトを返します.ビュー関数でこの変換を行い、応答オブジェクト上で様々なメソッドを呼び出し、応答をさらに設定する必要がある場合があります.次の例では、レスポンスオブジェクトを作成します.
    from flask import make_response
    @app.route('/response/')
    def response():
        resp = make_response('

    Bad Request

    ',400) return resp

    応答の2つの方法:
  • ビュー関数は、直接メタグループ(response,status,headers)
  • を返します.
  • ビュー関数はmakeを返します.resonse()関数によって生成された応答オブジェクト
  • 4、Cookies
    Cookiesの操作:
  • は、オブジェクトのcookies属性を要求することによってCookiesにアクセスする.(要求オブジェクトのcookiesプロパティは、クライアントが発行するすべてのCookiesのコンテンツの辞書です.)
  • 応答オブジェクトのset_を介してCookieメソッドはCookiesを設定します.
  • @app.route('/cookie/')
    def cookie():
        resp = make_response('set cookie')
        resp.set_cookie('name','myname')
        return resp

    5、要求フック
    要求フックは修飾器を使用して実装されます.Flaskでは、次の4種類のフックがサポートされています.
    • before_first_request:      ,            。
    • before_request:      ,         。
    • after_request:      ,            ,         。
    • teardown_request:      ,           ,          。