Сохранение html входного значения в переменную и отправка этой переменной в конечную точку Flask - PullRequest
0 голосов
/ 09 января 2020

У меня есть рабочее решение, чтобы получить пользовательский ввод с моего HTML и передать его на мою конечную точку Flask, используя request.form. Однако URL создается не так, как мне бы хотелось. Есть ли способ получить пользовательский ввод и создать из него строку? Например, вместо / summoner в URL-адресе браузера должно быть указано / summoner / whatISearchedFor.

HTML:

<form action="{{ url_for("getSummonerInformation") }}", method="POST">
    <input id="summonerSearched" name="summoner">
    <button type="submit">Search</button>
</form>

Моя Flask конечная точка:

@server.route("/summoner", methods=["POST"])
def getSummonerInformation():
    return request.form["summoner"] 

Я хочу что-то вроде этого с лучшим URL:

@server.route("/summoner/<summoner_name>", methods=["POST"])
def getSummonerInformation(summoner_name):
    return summoner_name # I want to get the HTML without using request.form

1 Ответ

0 голосов
/ 09 января 2020

Чтобы получить желаемый результат, вам нужно изменить метод запроса и создать URL-адрес самостоятельно. Поскольку входное значение равно Dynami c, вам нужно будет использовать JavaScript, чтобы получить URL-адрес, подобный domainname.com/summoner/userInput.

. Другой подход - использовать запрос GET вместо запроса POST. Затем вы можете получить доступ к параметру запроса с помощью метода request.args.get(). В этом случае вам все еще нужно использовать request. Подробнее о аргументах запроса см. В FLASK документации

В вашем случае:

HTML

<form action="{{ url_for("getSummonerInformation") }}", method="GET">
    <input id="summonerSearched" name="summoner">
    <button type="submit">Search</button>
</form>

Определение маршрута:

@server.route("/summoner")
def getSummonerInformation():
    summoner_name = request.args.get('summoner')
    return summoner_name 
...