Атрибут values
Атрибут values применяется к объекту запроса
request и возвращает объект, объединяющий
данные из args и form. При этом
приоритет отдаётся аргументам URL: если ключ есть
и в строке запроса, и в теле формы, то вернётся
значение из args.
Синтаксис
request.values
Пример
Давайте выведем объединённые данные запроса в обработчике:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
res = dict(request.values)
return res
Результат выполнения кода для адреса /?a=1&b=2:
{'a': '1', 'b': '2'}
Пример
Давайте передадим данные и в URL, и в форме, чтобы увидеть приоритет аргументов URL:
<form method="post" action="/?a=from_url">
<input type="text" name="a" value="from_form">
<input type="text" name="b" value="abcde">
<input type="submit" value="send">
</form>
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
res = dict(request.values)
return res
return render_template('index.html')
Результат выполнения кода после отправки формы:
{'a': 'from_url', 'b': 'abcde'}
Пример
Давайте получим конкретное значение из values
через метод get:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
name = request.values.get('name', 'guest')
return name
Результат выполнения кода для адреса /?name=abcde:
abcde
Результат выполнения кода для адреса /:
guest