Flask登陆页面联系表格

时间:2014-10-05 19:42:31

标签: flask

我学习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")

为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

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

我还建议你使用一些第三方服务作为邮件服务器(Mandrill等)。