bho*_*ben 5 html python forms input jinja2
当我将此行放在我的 html 模板中时,我可以通过 jinja2 变量成功地将输入字符串传递到我的 Python 代码中...
<label for="firstName">First name*</label>
<input type="text" name="fname" id="firstName" value="{{ fname }}">
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用以下行传递隐藏输入时...
<input type="hidden" name ="contact_form" value="{{ active_form }}">
Run Code Online (Sandbox Code Playgroud)
...我没有看到值传递回我的 Python 代码。我还没有学过 Javascript。是否需要一些 Javascript 来传递隐藏的输入值?我错过了什么?
我建议使用WTForms。
例子
from wtforms import TextField, validators, PasswordField, TextAreaField, HiddenField
class ArticleCreateForm(Form):
title = TextField('Title', [validators.Required("Please enter title.")],
filters=[strip_filter] )
body = TextAreaField('Body', [validators.Required("Please enter body.")],
filters=[strip_filter])
category = QuerySelectField('Category', query_factory=category_choice )
person_name = HiddenField()
Run Code Online (Sandbox Code Playgroud)
视图.py
@app.route('/create', methods=['GET', 'POST'])
def article_create():
if 'email' not in session:
return redirect(url_for('signin'))
person = Person.query.filter_by(email=session['email']).first()
name = person.firstname
article = Article()
form = ArticleCreateForm()
form.person_name.data = person.firstname
if form.validate_on_submit():
form.populate_obj(article)
db.session.add(article)
db.session.commit()
return redirect(url_for('index'))
return render_template('create.html', form=form, person=person, name=name)
Run Code Online (Sandbox Code Playgroud)