【问题标题】:Flask landing page contact formFlask 登陆页面联系表
【发布时间】:2014-10-05 19:42:31
【问题描述】:

我学习了 Flask 并开始为该项目制作一个简单的登录页面。这是处理联系表格的路线

@app.route("/courses")
def courses():
    form = ContactForm()
    if request.method == 'POST':
        if form.validate() == False:
            flash('All fields are required.')
            return render_template('courses.html', title="contact", form=form)
        else:
            msg = Message(recipients=['coterakg@gmail.com'])
            msg.body = """From: %s <%s>%s"""%(form.name.data, form.email.data, form.message.data)
            mail.send(msg)
            return render_template('courses.html', title="contact", success=True)
    if request.method == 'GET':
        return render_template('courses.html', title="contact", form=form)

然后有一个模板部分,它有表单

<form class="form-horizontal" action="{{ url_for('index') }}" id="contactform" method="post">
    <div class="modal-header">
        <h4>Задайте нам любой вопрос!</h4>
    </div>
    <div class="modal-body">

        {{ form.hidden_tag() }}

        <div class="form-group">
            <label for="contact-name" class="control-label">Имя:</label>
            <div>
                {{ form.name }}
            </div>

        </div>

        <div class="form-group">
            <label for="contact-email" class="control-label">Email:</label>
            <div>
                {{ form.email }}
            </div>
        </div>

        <div class="form-group">
            <label for="question" class="control-label">Ваш вопрос:</label>
            <div>
                {{ form.message }}
            </div>

        </div>
    </div>
    <div class="modal-footer">
        <a class="close-reveal-modal">&#215;</a>
        <button class="button" type="submit" value="contact" data-reveal-id="closeModal">Отправить</button>

        <div data-reveal class="reveal-modal" id="closeModal">
          <h1>Спасибо за Ваш вопрос!</h1>
          <a class="close-reveal-modal">&#215;</a>
        </div>

    </div>
</form>

最后 - 表格部分

from flask.ext.wtf import Form
from wtforms import StringField, BooleanField, SubmitField
from wtforms.validators import DataRequired

class ContactForm(Form):
    name = StringField("Name", validators=[DataRequired()])
    email = StringField("Email", validators=[DataRequired()])
    message = StringField("Message", validators=[DataRequired()])
    submit = SubmitField("Send")

任何想法为什么这不起作用?

【问题讨论】:

  • 预期的行为是什么?观察到的行为是什么?两者的差距在哪里?

标签: flask


【解决方案1】:

这里有一个很好的例子https://github.com/jawr/flask-contact/blob/master/main.py 详细步骤在这里http://code.tutsplus.com/tutorials/intro-to-flask-adding-a-contact-page--net-28982

我还建议您使用一些 3rd 方服务作为邮件服务器(Mandrill 等)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    • 2011-02-03
    • 1970-01-01
    相关资源
    最近更新 更多