我似乎无法让我的烧瓶应用程序显示我的 Form-flask_wtf

Posted

技术标签:

【中文标题】我似乎无法让我的烧瓶应用程序显示我的 Form-flask_wtf【英文标题】:I cant seem to get my flask app to display my Form- flask_wtf 【发布时间】:2020-05-31 23:16:29 【问题描述】:
@app.route('/contact', methods=['GET', 'POST'])
def contact():
    form = ContactForm()
    if request.method == 'POST':
        return render_template('contact.html',form=form)
                if form.validate_on_submit():
                      msg=Message(request.form['subject'], sender = request.form['name'],request.form['email'],
                      recepients=[request.form['email']]) 
                      msg.body='This is the body'
                      mail.send(msg)
                     flash('Message sent successfully')
                return redirect(url_for('/'))


我一直在尝试在我的烧瓶应用程序中运行一个简单的 Flask 表单,但是它不会显示该表单。我一直在网上搜索,我似乎无法找到我得到错误的地方。 这是我的 html 代码和 form.py:

% extends "base.html" %
% block main %
% block content %
<h1>Contact Form</h1>
<p> Fill in this form to contact the site owners</p>
<br>
<form action= "url_for('/contact')", method= "post">

    <div class="form-group">
            <label for="name"> Name</label>
            <input type="text" class="form-control" name="name" id="name"/>
    </div>
    form.name.label  form.name <br>
    <br>
   <div class="form-group">
            <label for="email">E-mail</label>
            <input type="email" class="form-control" name="email" id="email" placeholder="jdoe@example.com" />
    </div>
  form.email.labelform.email<br>
    <div class="form-group">
             <label for="subject">Subject</label>
             <input type="text" class="form-control" name="subject" id="subject"/>
   </div>                                                                                 
  form.subject.labelform.subject<br>
     <div class="form-group">
       <label for="message">Message</label>
       <input type="text" class="form-control" name="message" id="message"/>
   </div>

  form.message.label<br>
  form.message
  form.csrf_token


<button type ="submit">Send</button>

</form>
% endblock %

【问题讨论】:

【参考方案1】:

您过早地渲染模板。试试吧:

@app.route('/contact', methods=['GET', 'POST'])
def contact():
    form = ContactForm()
    if form.validate_on_submit():
        msg = Message(request.form['subject'], 
                      sender=request.form['name'],
                      request.form['email'],
                      recipients=[request.form['email']]) 
        msg.body='This is the body'
        mail.send(msg)
        flash('Message sent successfully')
        return redirect(url_for('/'))
    return render_template('contact.html',form=form)

【讨论】:

谢谢你,我试过了,但没有解决问题 @Beginner-Coder:您收到任何错误消息吗?我测试了一个类似的例子,表单显示出来了。

以上是关于我似乎无法让我的烧瓶应用程序显示我的 Form-flask_wtf的主要内容,如果未能解决你的问题,请参考以下文章

不和谐和机器人制作:我似乎无法让我的机器人发布网络解析材料

我似乎无法让我的表格成功通过电子邮件发送

如何让我的 UIPickerView 显示数组的所有元素

仍然无法将变量从烧瓶分配给 vue.js

无法访问 docker 容器内的烧瓶应用程序

从烧瓶 api 获取参数