0

我有一个可行的解决方案来从我的 HTML 中获取用户输入并使用 request.form 将其传递给我的 Flask 端点。但是,该 URL 并没有按照我想要的方式构建。有没有办法获取用户输入并从中创建一个字符串?例如,不是 /summoner,而是 /summoner/whateverISearchedFor 出现在浏览器的 URL 中。

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

4

1 回答 1

0

要获得您想要的结果,您必须更改您的请求方法并自己构建 URL。因为输入值是动态的,所以您需要使用 JavaScript 来获取类似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 
于 2020-01-09T11:05:14.213 回答