天天看點

關于Flask中的request方法和資料,一定要明白

作者:civilpy
關于Flask中的request方法和資料,一定要明白

開始一張圖,後面全靠編。

開始,Flask的Request對象提供了很多屬性和方法,可以友善地擷取HTTP請求的相關資訊。以下是一些常用的屬性和方法,以簡單的示例說明:

request.method

擷取HTTP請求的方法,比如GET、POST、PUT等。示例代碼:

from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
    method = request.method
    return f'The HTTP method is {method}'           

request.args

擷取HTTP請求中的查詢參數,以字典的形式傳回。示例代碼:

from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
    name = request.args.get('name', 'Anonymous')
    return f'Hello, {name}!'           

request.form

擷取HTTP POST請求中的表單資料,以字典的形式傳回。示例代碼:

from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['POST'])
def index():
    username = request.form.get('username')
    password = request.form.get('password')
    return f'Username: {username}, Password: {password}'           

request.cookies

擷取HTTP請求中的Cookie資訊,以字典的形式傳回。示例代碼:

from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
    username = request.cookies.get('username')
    return f'Hello, {username}!'           

request.remote_addr

擷取HTTP請求的用戶端IP位址。示例代碼:

from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
    ip = request.remote_addr
    return f'Your IP address is {ip}'           

request.headers

擷取HTTP請求的頭資訊,以字典的形式傳回。示例代碼:

from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
    user_agent = request.headers.get('User-Agent')
    return f'Your User-Agent is {user_agent}'           

以上是常用的一些request屬性和方法,通過它們可以友善地擷取HTTP請求的相關資訊。

以下是對request.get_json()、request.data和request.files的舉例說明:

request.get_json()

用于擷取POST、PUT等請求中的JSON資料。示例代碼:

from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['POST'])
def index():
    data = request.get_json()
    name = data.get('name')
    age = data.get('age')
    return f'Name: {name}, Age: {age}'           

在這個例子中,我們使用request.get_json()擷取POST請求中的JSON資料,然後從字典中擷取name和age字段的值。

request.data

用于擷取原始的請求資料,通常用于處理非表單資料,比如XML或JSON資料。示例代碼:

from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['POST'])
def index():
    data = request.data
    # 處理XML或JSON資料
    return 'Success'           

在這個例子中,我們使用request.data擷取POST請求中的原始資料,然後可以根據資料類型進行相應的處理。

request.files

用于擷取上傳的檔案資料。示例代碼:

from flask import Flask, request
app = Flask(__name__)
@app.route('/', methods=['POST'])
def index():
    file = request.files['file']
    file.save('/path/to/save/file')
    return 'Success'           

在這個例子中,我們使用request.files擷取上傳的檔案資料,然後将檔案儲存到指定的路徑中。需要注意的是,request.files傳回的是一個字典,可以根據表單中的檔案字段名來擷取對應的檔案資料。

你學會了嗎?

civilpy:Python資料分析及可視化執行個體目錄

關于Flask中的request方法和資料,一定要明白