如何将表单数据传递到简单的Python Flask应用程序

如何将表单数据传递到简单的Python Flask应用程序,python,flask,Python,Flask,我对烧瓶还不熟悉,我还在学习基础知识。我有一个简单的html表单,带有一个文本输入字段,它将数据传递给一个简单的flask应用程序。但是,我无法让dev服务器运行。通常,对于简单的Hello World程序,我将所有Python和Flask代码放在一个.py文件中,然后将其作为python3 Hello_World.py运行。这会自动启动Flask开发服务器 如何使我的简单html表单正常工作?代码共享如下: login.html 我知道这是一个非常愚蠢的问题,但我真的希望得到一些指导 谢谢您永

我对烧瓶还不熟悉,我还在学习基础知识。我有一个简单的html表单,带有一个文本输入字段,它将数据传递给一个简单的flask应用程序。但是,我无法让dev服务器运行。通常,对于简单的Hello World程序,我将所有Python和Flask代码放在一个.py文件中,然后将其作为python3 Hello_World.py运行。这会自动启动Flask开发服务器

如何使我的简单html表单正常工作?代码共享如下:

login.html

我知道这是一个非常愚蠢的问题,但我真的希望得到一些指导


谢谢

您永远不会返回login.html模板。如果请求是GET,则必须返回页面;如果它是一个帖子,那么它就是表单

@app.route('/login', methods=['POST', 'GET'])
def login():
    if request.method == 'POST':
        user = request.form['nm']
        return redirect(url_for('success', name=user))
    else:
        return render_template("login.html")
将名称从http.py更改为其他名称。python中有一个http模块,您的文件可能与它冲突


这样做之后,您仍然需要返回login.html表单,正如@miquelvir所说。

这很有效。非常感谢,非常感谢!不过,我有一个问题。我将文件从http.py重命名为http_test.py,应用程序正常运行。我打开了login.html文件,它显示了带有用户名的成功页面,其中包含post和get方法。即使我不使用render_模板函数,代码也可以工作。你能帮我理解吗?我打开login.html文件是什么意思?你怎么知道的?没有返回render_模板的代码不应正常工作。
from flask import Flask, redirect, url_for, request
app = Flask(__name__)

@app.route('/success/<name>')
def success(name):
   return 'welcome %s' % name

@app.route('/login',methods = ['POST', 'GET'])
def login():
   if request.method == 'POST':
      user = request.form['nm']
      return redirect(url_for('success',name = user))
   else:
      user = request.args.get('nm')
      return redirect(url_for('success',name = user))

if __name__ == '__main__':
   app.run(debug = True)
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "http.py", line 1, in <module>
    from flask import Flask, redirect, url_for, request
  File "/home/neo/flask_projects/venv/lib/python3.6/site-packages/flask/__init__.py", line 16, in <module>
    from werkzeug.exceptions import abort
  File "/home/neo/flask_projects/venv/lib/python3.6/site-packages/werkzeug/__init__.py", line 15, in <module>
    from .serving import run_simple
  File "/home/neo/flask_projects/venv/lib/python3.6/site-packages/werkzeug/serving.py", line 61, in <module>
    import SocketServer as socketserver
ModuleNotFoundError: No module named 'SocketServer'
@app.route('/login', methods=['POST', 'GET'])
def login():
    if request.method == 'POST':
        user = request.form['nm']
        return redirect(url_for('success', name=user))
    else:
        return render_template("login.html")