如何生成用户使用烧瓶提交的表单的链接?

时间:2017-09-10 15:00:04

标签: python flask flask-wtforms flask-mail

我正在尝试使用Python,flask,flask-wtforms和flask-mail构建一个工具,其中:
a)用户访问网站并填写表格
b)用户填写表格后,将发送一封电子邮件,其中包含用户在表格中填写的所有详细信息(例如姓名,姓氏,评论等)。

到目前为止,如果用户将名字填写为测试名,将姓氏填写为用户名,将电子邮件填写为testuser@example.com,并将评论填写为“这是测试评论”,则会收到包含以下信息的电子邮件:

名称:测试用户
电子邮件:testuser@example.com
评论:这是测试评论

我想进一步做的是:
a)在电子邮件中发送一个链接,该链接应指向用户在表单中提交的信息(我已经构建了一个测试页面,formSubmitted.html,用户在提交表单后看到) b)从电子邮件中打开链接后,我应该能够查看,回复并向用户的初始评论提供反馈(比如说“你的评论应该是”,这是一个测试评论2“而不是“这是一个测试评论”) c)最后,用户应该收到一封电子邮件,其中包含他或她可以去的链接,并查看我发布的评论(“这是测试评论2”)以及他或她的初始评论(“这是测试评论” )

这可以在Flask和flask-mail中完成吗?或者在Python中使用其他一些模块?

感谢您的帮助。

我的代码:
__init__py文件:

mail = Mail(app)
class MyForm(Form):
    firstName = StringField('First name', [validators.Length(min=3, max=35)])
    lastName = StringField('Last name', [validators.Length(min=3, max=35)])
    Email = StringField('Email Address', [validators.Length(min=4, max=35)])
    comment = TextAreaField('Comment', [validators.Length(min=4, max=500)])

@app.route('/', methods=['GET', 'POST'])
def index():
    form = MyForm(request.form)
    msg = Message("Email from user: " + form.firstName.data + " " + form.lastName.data, sender='testuser@example.com', recipients=['testuser2@example.com'])  
    msg.html = "Name: "  +  form.firstName.data + " " + form.lastName.data + \
        " <br />" +  "Email: " + form.Email.data + \
        "<br /> " + "Comment: " + form.comment.data 

    mail.send(msg)
    return render_template('formSubmitted.html', form=form)
return render_template('index.html', form=form)

if __name__ == "__main__":
    app.run(debug=True)

index.html文件:

{{ render_field(form.firstName) }}
{{ render_field(form.lastName) }}
{{ render_field(form.Email) }}
{{ render_field(form.comment) }}

formSubmitted.html文件:

{% autoescape false %}
{{"Name: " + form.firstName.data + " " + form.lastName.data + "<br />"
+ "Email: " + form.Email.data +  "<br /> "
+ "Comment: " + form.comment.data}}
{% endautoescape %}

0 个答案:

没有答案