1

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

0 回答 0