Python Flaskのリクエストオブジェクトの詳細説明

この記事では、クライアントからサーバーに送信されるリクエスト リクエストとサーバーから送信されるレスポンス レスポンスを含む、完全な HTTP リクエストである Flask リクエスト オブジェクトについて紹介します。リクエストおよびレスポンス メッセージ情報へのアクセスを容易にするために、Flask フレームワークはいくつかの機能を提供します。組み込みオブジェクト、Flask の組み込みオブジェクトのリクエストについて話しましょう。必要な友達はそれを参照できます。

知っておくべき Flask リクエスト Flask Request オブジェクト

クライアント Web ページからのデータは、グローバル リクエスト オブジェクトとしてサーバーに送信されます。リクエスト データを処理するには、Flask モジュールからリクエスト データをインポートする必要があります。

Request オブジェクトの重要なプロパティを以下に示します。

form -これは、フォームパラメーターとその値のキーと値のペアを含む辞書オブジェクトです。

args - 解析されたクエリ文字列の内容。URL の疑問符 (?) の後の部分です。

Cookie - Cookie の名前と値を保持する辞書オブジェクト。

ファイル - アップロードされたファイルに関連するデータ。

Method - 現在のリクエストメソッド

request を使用することも比較的簡単です。つまり、flask モジュールから request オブジェクトを直接インポートします。

フラスコインポートリクエストから

1

2

3

4

5

6

7

8

9

"""args - 解析查询字符串的内容,它是问号(?)之后的URL的⼀部分。"""

@app.route('/login', methods=['POST', 'GET'])

 def login():

      if request.method == 'POST':

            user = request.form['nm']

            return redirect(url_for('do_welocome',name = user))

       else:

       user = request.args.get("nm")

       return redirect(url_for('do_welocome',name = user))

Flask の Cookie はデータを取得することを知っておく必要があります。Cookie はクライアントのコンピュータにテキスト ファイルの形式で保存されます。

その目的は、訪問者のエクスペリエンスと Web サイトの統計を向上させるために、顧客の使用状況に関連するデータを記憶および追跡することです。

Flask の Request オブジェクトには Cookie プロパティが含まれています。

これは、すべての Cookie 変数とその対応する値の辞書オブジェクトです。

Cookie には、特に、有効期限、Web サイトのパス、ドメイン名が保存されます。

Flask での Cookie の処理手順は次のとおりです。

クッキー1セット:

Cookie を設定します。デフォルトの有効期間は一時的な Cookie であり、ブラウザを閉じると無効になります。

有効期間は max_age で設定でき、単位は秒です。

2 クッキーを入手

Cookieを取得するには、request.cookiesを通じて辞書が返され、辞書内の対応する値を取得できます。

3 Cookieを削除する

ここでの削除は Cookie を期限切れにするだけであり、Cookie を直接削除するわけではありません。

Cookie を削除するには、Cookie の名前を含む delete_cookie() を使用します。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

from flask import  Flask,request,render_template,make_response

app = Flask(__name__)

@app.route('/setcookies')

def set_cookie():

    rep = make_response('设置cookies成功cookie:zhen guo:33')

    rep.set_cookie("zhen guo", '33',max_age = 3600)

    return rep

@app.route('/getcookie')

def get_cookie():

    cookie_value = request.cookies.get('zhen guo')

    return cookie_value

@app.route('/del_cookie')

def del_cookie():

    rep = make_response('删除cookie成功')

    rep.delete_cookie('zhen guo')

    return rep

if __name__ == "__main__":

    app.debug = True

    app.run('127.0.0.1',5000)

Flask ファイルのアップロード Flask でのファイルのアップロードの処理は非常に簡単です。

ファイルを URL にポストするには、enctype 属性が「multipart/form-data」に設定された HTML フォームが必要です。

URL ハンドラーは request.files[] オブジェクトからファイルを抽出し、目的の場所に保存します。

1

2

3

4

5

6

7

8

9

10

11

12

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Title</title>

</head>

<body>

<form action="http://127.0.0.1:5000/uploader" method="POST" enctype="multipart/form-data">

<p><input type="file" name="file1" accept=".jpg,.png,.xlsx,.xls"/></p>

<p><input type="submit"/></p> </form>

</body>

</html>

アップロードされた各ファイルは、まずサーバー上の一時的な場所に保存されます。

次に、実際に Y の終了位置に保存します。

ターゲットファイルの名前はハードコーディングできます

request.files[file] オブジェクトの filename 属性から取得することもできます。

ただし、安全なバージョンを取得するには、 secure_filename() 関数を使用することをお勧めします。

デフォルトのアップロードフォルダーのパスとアップロードされたファイルの Y 値は、Flask オブジェクトの構成設定で定義されます。

app.config['UPLOAD_FOLDER'] はアップロード フォルダーのパスを定義します

app.config['MAX_CONTENT_LENGTH'] は、アップロードするファイルの Y 最大値 (バイト単位) を指定します。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

from flask import  Flask,request,render_template,make_response

from werkzeug.utils import secure_filename

import os

app = Flask(__name__)

app.config['UPLOAD_FOLDER'] = r'D:\pythonProject1\static'

@app.route('/')

def index():

    return render_template('upload.html')

@app.route('/uploader',methods=['POST','GET'])

def upload():

    if request.method == "POST":

        f = request.files['file1']

        filename = secure_filename(f.filename)

        f.save(os.path.join(app.config['UPLOAD_FOLDER'],filename))

        return f'文件{filename}上传成功'

if __name__ == "__main__":

    app.debug = True

    app.run('127.0.0.1', 5000)

Python Flaskのリクエストオブジェクトの詳しい使い方についてのこの記事はこれで終わりです。


クリックして50G 以上の学習ビデオ チュートリアルを入手
100 以上の Python 初級、中級、上級の電子書籍

おすすめ

転載: blog.csdn.net/ai520wangzha/article/details/131046894