Python 我想要一个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

在我的程序中,有一个GET请求从表单发送到Flask视图

表格如下:

<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
所以我要找的正是:

  • 我不明白为什么它返回“无”。我想了解一下为什么它在GET请求中返回“\uu None”而不是“None”。我试着到处寻找答案
  • 程序发送数据,但它没有重定向到任何页面,只是在主页视图中重新加载。我通过控制台获得请求,因此我知道数据正在发送 我如何解决这个问题

  • 我试过禁用CSRF,只是想看看“无”是否会变为“无”。没有成功
  • 我有点理解GET请求是以字符串形式发送的,因此这可能是____________________________________ 预期结果:

    我在重播:无 或 我在重新外线:1无无 (基于输入)

    并使用条件成功重定向到页面。 我的代码不是很干净,因为程序的这一部分在不断变化,我需要保持所有内容的简短,所以请耐心等待


    我将非常感谢任何指点、建议或有用的提示

    不知道它是否能解决您的问题-只是粗略地看一下您的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: