首页 > 解决方案 > 我正在尝试使用 python 烧瓶发送电子邮件并使用 url 函数在我的 html 代码中构建一个 url,但我得到了 routing.BuildError:错误?

问题描述

我正在使用一个简单的表单来使用 Flask 发送电子邮件。HTML 文件是 (home.html) 和 (result.html),如下所示。

主页.html

<!DOCTYPE html>
<html language="English">
<head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Flask-Email </title>
</head>
<body>
    <h1>Flask Mail Sending App</h1>

<form action="{{url_for('send_message')}}" method="POST">
    <input type="email" name="email" placeholder="Email" required id="">
    <input type="text" name="subject" placeholder="Subject" required id="">
    <textarea name="message" id="" rows="3" cols="20" placeholder="Hi, I'm sending test mail" ></textarea><br><br>enter code here
    <input type="submit" value="Send Message">

</form>

</body>
</html>

结果.html

<h1>{{success}}</h1>
<a href="/"> Go to Home Page</a>

**现在工作正常。在第二条路线中缺少@。**

主文件

mail = Mail(app)

@app.route("/")
def index():
    return render_template("home.html")
@app.route("/send_message", methods=['GET', 'POST'])


def send_message():
    if request.method == "POST":
        email = request.form['email']
        subject = request.form['subject']
        msg = request.form['message']

        message = Message(subject, sender='', recipients=[email])
        message.body = msg

        mail.send(message)

        success = "Message Sent"

        return render_template('result.html', success=success)


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

标签: pythonflask

解决方案


推荐阅读