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