我想在我家里加入WTF表格的模板。类似这样的html页面:{%include“users/register.html”%},同时保留呈现主页的代码。html和表单注册表。html分隔,如下所示。
我有一个主页“主页”。正在由“我的”应用程序中的“index()”函数路由的html。“py”文件。
'应用程序。py'还注册了在“视图”中定义的蓝图“user\u blueprint”。“py”文件。
我有一个函数“sign\u up”,它在名为“register”的模板中呈现wtf表单。html'。
在家里。html我想这样做:{%include“users/register.html”%}。我的理解是,这不起作用,因为表格并没有传递给家庭。html,包括注册。主页中的html。html本质上类似于复制它,表单对象不会传递到主页。html
如何呈现模板寄存器。在维护蓝图(而不仅仅是将表单复制到“index()”中)时使用html?虽然这可能不是最好的方法,但在这种情况下,您有什么建议?谢谢
应用程序。py公司
import...
app = Flask(__name__)
app.config.from_object('config')
app.secret_key = "123"
UPLOAD_FOLDER = os.path.join(app.root_path, 'static/img/products/')
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
@app.before_first_request
def init_db():
Database.initialize()
@app.route('/')
@app.route('/home')
def index():
products = Product.find_all()
return render_template('home.html', title='Home', products=products)
app.register_blueprint(user_blueprint, url_prefix="/users")
视图。py公司
user_blueprint = Blueprint('users', __name__)
class RegisterUser(FlaskForm):
first_name = StringField('first_name', validators=[DataRequired()])
last_name = StringField('last_name', validators=[DataRequired()])
email = StringField('email', validators=[DataRequired()])
password = StringField('password', validators=[DataRequired()])
@user_blueprint.route('/register', methods=['GET', 'POST'])
def sign_up():
form = RegisterUser(request.form)
if request.method == 'POST' and form.validate():
first_name = form.first_name.data
last_name = form.last_name.data
email = form.email.data
password = form.password.data
print(first_name)
try:
if User.register_user(first_name, last_name, email, password):
session['email'] = email
return redirect(url_for("index"))
except UserErrors.UserError as e:
return e.message
return render_template('users/register.html')
return render_template('users/register.html', form=form)
登记html
{% from "_formhelpers.html" import render_field %}
<form method=post>
<dl>
{{ render_field(form.first_name) }}
{{ render_field(form.last_name) }}
{{ render_field(form.email) }}
{{ render_field(form.password) }}
</dl>
<p><input type=submit value=register>
</form>
家html,不包括非相关html
{% include "users/register.html" %}