Поиск…


Вступление

При работе с веб-приложением иногда важно получить доступ к данным, включенным в запрос, за пределы URL.

В Flask это хранится под объектом глобального запроса , доступ к которому вы можете получить в своем коде через from flask import request .

Доступ к строке запроса

Строка запроса является частью запроса, следующего за URL-адресом, которому предшествует ? отметка.

Пример: https://encrypted.google.com/search ?hl=en&q=stack%20overflow

В этом примере мы создаем простой веб-сервер echo, который возвращает все отправленные ему элементы через поле echo в запросах GET .

Пример: localhost:5000/echo ?echo=echo+this+back+to+me

Пример колбы :

from flask import Flask, request

app = Flask(import_name=__name__)

@app.route("/echo")
def echo():

    to_echo = request.args.get("echo", "")
    response = "{}".format(to_echo)

    return response

if __name__ == "__main__":
    app.run()

Комбинированная форма и строка запроса

Flask также позволяет получить доступ к CombinedMultiDict, который предоставляет доступ к атрибутам request.form и request.args под одной переменной.

В этом примере извлекаются данные из name поля формы, представленного вместе с полем echo в строке запроса.

Пример колбы :

from flask import Flask, request

app = Flask(import_name=__name__)


@app.route("/echo", methods=["POST"])
def echo():

    name = request.values.get("name", "")
    to_echo = request.values.get("echo", "")

    response = "Hey there {}! You said {}".format(name, to_echo)

    return response

app.run()

Доступ к полям формы

Вы можете получить данные формы, отправленные через запрос POST или PUT в Flask с помощью атрибута request.form .

from flask import Flask, request

app = Flask(import_name=__name__)


@app.route("/echo", methods=["POST"])
def echo():

    name = request.form.get("name", "")
    age = request.form.get("age", "")

    response = "Hey there {}! You said you are {} years old.".format(name, age)

    return response

app.run()


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow