为了账号安全,请及时绑定邮箱和手机立即绑定

无法从 python Flask 应用程序中的 HTML 表单获取输入

无法从 python Flask 应用程序中的 HTML 表单获取输入

犯罪嫌疑人X 2023-10-24 21:56:17
我试图将 html 文本框与我的 python Flask 应用程序链接起来,以便我可以与它交互,所以我尝试了很多东西并“解析”互联网以了解如何做到这一点,但没有任何效果。但是,我做了一个小测试程序,以便您可以更好地理解,但我仍然遇到很多错误,实际上是页面测试启动本身,在输入我的输入并按提交按钮后,我有一个“不允许方法”错误,尽管我认为如果在方法字段中同时放置“get”和“POST”方法,它会自行修复。无论如何,我实际上被阻止了,我需要你帮助我让这个简单的程序运行。这是我的程序的路线:@app.route('/test.html', methods=['GET', 'POST'])def route_test():    text = request.form.get('text')    print(text)    return render_template('test.html', message = text)这里是链接到它的 html 页面:<!doctype html> <html><head><meta charset="UTF8"></head><body><h1>Indiquer votre nom</h1> <form action= "." method= "POST"><input type= "text" name= "text"> <button type= "submit">OK</button></form><p>{{ message }}</p></body> </html>正如你所看到的,它非常简单,尽管它不会打印任何文本。我也尝试过 request.form['text'],并action="."用不同的东西改变,但没有任何改变。希望您能解决我的问题,非常感谢。
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

我回来了,我终于找到了一个答案,我将在这里发布给那些感兴趣的人:事实上,您必须创建另一个路由,该链接(URL)将是您的 html 表单的操作,这样您就可以您的静态页面,当按下提交按钮时,调用另一个作为 python 中的函数的路由,然后您可以使用 request.form['input1'] 获取输出。


无论如何,这里有一个小代码示例:


@app.route('/test', methods=['GET'])

def route_test():

    text = request.form.get('text')

    print(text)

    return render_template('test.html', message = text)


@app.route('/test_obtain_input', methods=['POST'])

def route_test_obtain_input():

    text = request.form['text']

    print(text)

##you can do whatever you want with it after, here I just reinjecting it in my test page

    return render_template('test.html', message = text)

所以我的 HTML 表单将如下所示:


<!-- insert the url that is adequate to your application -->

<form action= "https://localhost:5000/test_obtain_input" method= "POST">

<input type= "text" name= "text">

<button type= "submit">OK</button>

</form>

虽然我没有测试这段代码,因为我在真实页面上使用了这段代码,但它应该可以工作,而且这是一个很好的逻辑,但我和我的队友没有找到任何其他解决方案来做到这一点。


查看完整回答
反对 回复 2023-10-24
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信