前端页面代码 loginGO.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<html lang="en">
<body>
<form action = '/login' method = "get">
<p>Enter Name:</p>
<p><input type = "text" name = "nm" /></p>
<p><input type = "submit" value = "submit" /></p>
</form>
</body>
</html>
后端接收代码
@app.route('/login',methods = ['POST','GET'])
def login():
print(request.method)
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))
@app.route('/success/<name>')
def success(name):
return 'welcome %s' % name
报错是因为获取不到name的值 因为loginGO.html页面还没有加载出来
解决方案:
另外写一个路由 先加载模板 loginGO.html
@app.route('/login',methods = ['POST','GET'])
# 先get这个请求 访问页面(不是一开始就是get)
def login():
print(request.method)
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))
@app.route('/success/<name>')
def success(name):
return 'welcome %s' % name
###############添加路由 加载模板###############
@app.route('/')
def hello():
return render_template("loginGO.html")
ps:可能会出现其他报错 可能是没有加载库或者模板文件路径没有定义
开头声明一下就好了
from flask import Flask, redirect, url_for, request,render_template
app = Flask(__name__,template_folder=r"F:\\这里写你存放模板(loginGO.html文件)的路径")
欢迎大家补充