Python 我想要一个GET方法发送到Flask视图,但我无法处理它。有谁能告诉我我做错了什么?
在我的程序中,有一个GET请求从表单发送到Flask视图 表格如下:Python 我想要一个GET方法发送到Flask视图,但我无法处理它。有谁能告诉我我做错了什么?,python,flask,get,Python,Flask,Get,在我的程序中,有一个GET请求从表单发送到Flask视图 表格如下: <form method="GET" action="{{url_for('rerouter')}}"> {{ form.hidden_tag() }} <fieldset class="form-group"> <legend class="border-bottom mb-4">Search</lege
<form method="GET" action="{{url_for('rerouter')}}">
{{ form.hidden_tag() }}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Search</legend>
<div>
{{ form.welder_selector.label(class="form-control-label") }}
{{ form.welder_selector(class="searchable-welder-js",style="width: 28%") }}
{{ form.wps_selector.label(class="form-control-label") }}
{{ form.wps_selector(class="searchable-wps-js",style="width: 27.8%") }}
{{ form.process_selector.label(class="form-control-label") }}
{{ form.process_selector(class="searchable-process-js",style="width: 27.8%") }}
</div>
</fieldset>
<div class="form-group">
{{ form.submit(class='btn btn-outline-success') }}
</div>
</form>
HTML表单在此视图中生成:
@app.route("/", methods=['GET', 'POST'])
@app.route("/home", methods=['GET', 'POST'])
def home():
form = TrialSearchMultipleForm()
return render_template('home.html', title='Home', form=form)
我已经使用POST方法成功地实现了该程序,但我后来了解到正确的方法是使用GET发送表单数据
我在控制台抓到了什么
127.0.0.1 - - [29/Apr/2019 09:10:20] "GET /rerouter?welder_selector=__None&wps_selector=__None&process_selector=__None&submit=Search HTTP/1.1" 302
Im at rerouter with : __None __None __None
所以我要找的正是:
我将非常感谢任何指点、建议或有用的提示 不知道它是否能解决您的问题-只是粗略地看一下您的python脚本
if value1 is not 0 or None:
这不是你想象的那样。
“无”被认为是错误的。您编写的内容相当于以下两个独立的布尔表达式:
if (value1 is not 0) or (False):
因此,表达式中唯一与是否执行if语句体有关的部分是第一部分(value1不是0)。这意味着,如果value1为None,则if语句的主体将不会被执行
此外,假设这是固定的,您可能不想用“or”分隔这两个条件。在我看来,value1不能是这些值中的任何一个,在这种情况下,您将使用“and”
顺便说一句,这可能不是很关键,但我会检查value1是否不等于值0,而不是检查它们的标识是否不同
然而,根据pep8,当检查某个内容是否为“无”时,应该选择(value1不是“无”)而不是(value1!=None)。在我看来,固定条件是这样的:
if value1 != 0 and value1 is not None:
但我后来了解到,正确的方法是使用GET发送表单数据
它实际上是相反的谢谢,我会再次阅读。好的,我只是用它来制作一个下拉搜索栏,因此数据本质上不敏感,也不需要大量发布。我为我的措辞错误而道歉。我需要发送的这些数据基本上提供了搜索功能。好的,在@user10987432的帮助下,我将代码修改为if value1!='__无:
。我得到了所需的输出,但我想知道除了硬编码之外,是否还有更有效的方法来解决这个问题。``elif value1==0:print(“entered elif loop?”)return redirect(url\u for('home'))``试图检查它是否进入elif循环并带我回家,但返回的输出与上面相同。我收集到的结果是,进入第一个if循环,然后在那里发生了一些错误。正在修复它。编辑:如果值1!=0且值1不是None:返回重定向(url_for('welderdatabase',welder_id=value1)),否则:返回“It is None”以测试它是否工作,当输入非None值时,它会将我带到所需页面。仍然错误,因为get请求中将“NONE”返回为“NONE”。打印(键入(value1))以查看正在处理的内容如何?可能是一根绳子吧?这应该告诉你更多。是的,我做到了,这是一个好消息。有什么想法可以从那里开始吗?
if value1 != 0 and value1 is not None: