我正在尝试使用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 %}