我对 Flask 完全陌生,并且真的完全不知道如何解决这个问题。我已经研究过其他问题,但无论如何我似乎都无法使其正常工作。
我有这样的表格:
<form class="teamSelection" method="POST" action="/submitted">
<select class="teamForm" id="teamDropdownSelector" type="text" name="teamDropdown" placeholder="Select A Team">
<option disabled selected>Select a game</option>
<option id="WatfordVSManchester Utd" value="">Watford VS Manchester Utd</option>
</select>
<input class="btn" type="submit" value="submit">
</form>
我的 flask 是这样的:
from flask import Flask
app = Flask(__name__)
@app.route("/submitted")
def hello():
return "hello world"
目标是获取所选/提交的下拉项目的内容,将其传递到 flask 文件,然后我在其中使用团队名称来抓取有关比赛的信息。然而目前我似乎甚至无法让表单的 POST 工作,并且完全不知所措。我知道这是一个相当模糊且开放式的问题,但我真的不知道还有什么办法可以解决这个问题。
我是否应该使用 jquery 来检测下拉菜单何时发生更改,并使用 AJAX 发送 POST 以某种方式调用脚本并将值传递给其中?
任何帮助将不胜感激。
<小时/>编辑
我以为我把这个放在原来的帖子里了,但一定忘了。
我目前正在运行 apache localhost 服务器,并通过 pycharm 使用 Flask。我目前所做的只是在 pycharm 中安装 Flask 包,并且没有像我在一些教程中看到的从命令行运行时所做的那样进行任何设置。我认为这一步是不必要的,因为我已经有一个服务器启动并运行 apache?
当谈到像这样的后端东西时,我真的不知道,所以如果这是一个愚蠢的假设,我很抱歉。
我已将 flask 更改为:
from flask import Flask
app = Flask(__name__)
@app.route("/submitted", methods=['POST'])
def hello():
with open("newTest.csv", mode="w+") as file:
fileWriter = csv.writer(file)
fileWriter.writerow(['Time', 'HomeTeam', 'AwayTeam'])
file.close()
原因是我可以看到这个脚本是否确实被调用,如果是的话,它将创建一个名为 newTest 的新 csv 文件。运行网页并提交后,没有出现新的 csv 文件,因此该脚本没有运行,这意味着这可能是由于我没有正确配置 Flask?/apache 足够的假设是不正确的?
最佳答案
您只需告诉flask方法接受POST请求并从请求中读取参数
示例:
from flask import Flask, request
app = Flask(__name__)
@app.route("/submitted", methods=['POST'])
def hello():
myvariable = request.form.get("teamDropdown")
... your code ...
return "hello world"
关于python - 使用 Flask 从下拉菜单中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52443855/