Когда пользователь получает доступ к этому URL-адресу, запущенному в моем приложении фляги, я хочу, чтобы веб-служба могла обрабатывать параметры, указанные после знака вопроса:
http://10.1.1.1:5000/login?username=alex&password=pw1
#I just want to be able to manipulate the parameters
@app.route('/login', methods=['GET', 'POST'])
def login():
username = request.form['username']
print(username)
password = request.form['password']
print(password)
python
web-services
flask
url-parameters
Алекс Стоун
источник
источник
Ответы:
Используйте
request.args
для получения проанализированного содержимого строки запроса:источник
app.route('/username=<username>&password=<password>')
? Таким образом, вы вообще не пишете строки request.args.get.?
в начале параметров, так что вы захотитеapp.route('/?username=<username>&password=<password>')
, но Flask будет читать все после вопросительного знакаrequest.args
и не будет интерпретировать переменные из маршрута. Если вы хотите добраться до своего примера маршрута с помощью HTML-формы, вам понадобится куча дополнительных JavaScript, чтобы он работал. Наконец, переменные маршрута являются обязательными,request.args
могут быть необязательными.Доступны параметры URL
request.args
в ImmutableMultiDict , у которого естьget
метод, с необязательными параметрами для значений по умолчанию (default
) и type (type
), которые могут вызываться для преобразования входного значения в требуемый формат. (См. Документацию метода для более подробной информации.)Примеры с кодом выше:
источник
filter
это зарезервированное слово, не следует использовать;)Вы также можете использовать скобки <> в URL определения представления, и эти входные данные войдут в аргументы функции представления
источник
Если в URL передан один аргумент, вы можете сделать это следующим образом
Если у вас есть несколько параметров:
То, что вы пытались сделать, работает в случае запросов POST, когда параметры передаются как параметры формы и не отображаются в URL. В случае, если вы на самом деле разрабатываете API входа в систему, рекомендуется использовать запрос POST, а не GET и предоставить данные пользователю.
В случае почтового запроса это будет работать следующим образом:
HTML-фрагмент:
Маршрут:
источник
URL:
код:
(Изменить: удаленные пробелы в строке формата)
источник
Это действительно просто. Позвольте мне разделить этот процесс на два простых шага.
В HTML-шаблоне вы объявите имя тега для имени пользователя и пароля как
Затем измените ваш код как:
источник
Используйте
request.args.get(param)
, например:Вот ссылка на код ссылки.
источник