**建议重复的差异,我的错误源于原始代码session['message']=request.form['message']
中缺少以下行,其中建议的副本中缺少render_template
组件
我正在尝试使用Flask创建用户会话,我并不关心身份验证。我只想要一个他们输入名字的页面,然后将它们重定向到主页面。我尝试按照this link here中的示例进行操作,但我得到了werkzeug.routing.BuildError
。总结一下我的python应用程序是:
from flask import Flask, render_template
from flask import request, session, url_for,abort,redirect
app = Flask(__name__)
app.config['SECRET_KEY'] = 'F34TF$($e34D';
@app.route('/')
def home():
return render_template('index.html')
@app.route('/signup', methods=['POST'])
def signup():
session['username'] = request.form['username']
session['message']=request.form['message']
return redirect(url_for('message'))
@app.route("/message")
def message():
return render_template("message.html")
if __name__ == '__main__':
app.run(debug=True)
和index.html
是:
{% extends "layout.html" %}
{% block content %}
<h1>Say something</h1>
<form method="post" action="{{ url_for('signup') }}">
<p><label>Username:</label> <input type="text" name="username" required></p>
<p><button type="submit">Send</button></p>
</form>
{% endblock %}
layout.html
是:
<!doctype html>
<html lang="en">
<head>
<title>Say somthing</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
答案 0 :(得分:1)
您收到该错误是因为您没有名为message
的路线,但您正在重定向到该路线。
@app.route('/signup', methods=['POST'])
def signup():
session['username'] = request.form['username']
# Create a message route first
return redirect(url_for('message'))
这是一个名为message
的示例路由@app.route("/message")
def message():
return render_template("message.html")