Flask 3のリクエストと応答
二.要求と応答
1、HTTP方法
2、プログラムと要求コンテキスト
要求コンテキスト:
プログラムコンテキスト:第2の方法は、app_を明示的に呼び出すことである.context()メソッド:
3、応答
Flaskはビュー関数を呼び出すと、応答の内容として値を返します.
ビュー関数の戻り値は応答です
メタグループを返さない場合は、Flaskビュー関数はResponseオブジェクトを返すこともできます.make_response()関数は、1つ以上のパラメータ(ビュー関数の戻り値と同じ)を受け入れ、Responseオブジェクトを返します.ビュー関数でこの変換を行い、応答オブジェクト上で様々なメソッドを呼び出し、応答をさらに設定する必要がある場合があります.次の例では、レスポンスオブジェクトを作成します.
応答の2つの方法:ビュー関数は、直接メタグループ(response,status,headers) を返します.ビュー関数はmakeを返します.resonse()関数によって生成された応答オブジェクト 4、Cookies
Cookiesの操作:は、オブジェクトのcookies属性を要求することによってCookiesにアクセスする.(要求オブジェクトのcookiesプロパティは、クライアントが発行するすべてのCookiesのコンテンツの辞書です.) 応答オブジェクトのset_を介してCookieメソッドはCookiesを設定します.
5、要求フック
要求フックは修飾器を使用して実装されます.Flaskでは、次の4種類のフックがサポートされています.
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. : ,
。 , ,
。
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つの方法:
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: , , 。