1

Python、flask、flask-wtforms、およびflask-mailを使用してツールを構築しようとしています:
a) ユーザーがWebサイトにアクセスしてフォーム
に入力します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