python - 使用烧瓶从下拉菜单中获取数据
问题描述
我对烧瓶完全陌生,并且真的完全迷失了如何处理这个问题。我已经研究了其他 SO 问题,但无论如何我似乎都无法让它发挥作用。
我有这样的表格:
<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>
和我的烧瓶一样:
from flask import Flask
app = Flask(__name__)
@app.route("/submitted")
def hello():
return "hello world"
目标是获取所选/提交的下拉项目的内容,将其传递到烧瓶文件,然后我在其中使用团队名称来抓取有关比赛的信息。然而,目前我什至似乎无法让表单的 POST 工作并且完全不知所措。我很欣赏这是一个非常模糊和开放式的问题,但我真的不知道如何解决这个问题。
我是否应该使用 jquery 来检测下拉列表何时更改并使用 AJAX 发送 POST 以某种方式调用脚本并将值传递给它?
任何帮助将不胜感激。
编辑
我以为我把它放在原帖中,但一定忘记了。
我目前正在运行一个 apache localhost 服务器,并且正在通过 pycharm 使用烧瓶。我目前所做的只是在 pycharm 中安装烧瓶包,并没有像我在一些教程中看到的从命令行运行时那样设置它。我认为这一步没有必要,因为我已经有一个服务器启动并运行 apache?
当谈到像这样的后端东西时,我真的不知道,如果这是一个愚蠢的假设,请道歉。
我已将烧瓶更改为:
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足够的假设是不正确的?
解决方案
您只需告诉烧瓶方法接受 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"
推荐阅读
- c# - .NET 标准类库中的 System.Web
- batch-file - 通过 vbs 运行 bat 的计划任务,任务计划程序说它运行但 bat 没有
- python - 如何使用opencv python获得最佳特征脸
- javascript - 如何以角度将自定义事件绑定到父元素?
- javascript - Wow.js 不会在不同的时间间隔为一个元素使用两个类
- c# - 如何处理 ASP.NET 应用程序中的缓存和浏览器后退按钮?
- jquery - 不使用突出显示 filterData 在全局变量上显示过滤器数据意味着在 Typescript 中的函数之外
- json-api - 复杂 JSON API 属性上的稀疏字段
- java - 当我在 ActionListener 中使用时,它会停止
- postgresql - 如何在 POSTGRESQL 中按小时分组并将缺失的小时数设为 0