通过Flask更改HTML文件

时间:2017-03-14 16:52:52

标签: python html flask

我有一个HTML表单(在一个非常基本的Flask站点中,调整为在一个类中),它接受一些值并将它们上传到数据库。我想要的是在用户点击“提交”输入按钮后在同一页面上向用户发送某种消息。那就是 - 不要提供不同的 HTML文件,而是要改变,比如我的home.html文件中的一个div,或者添加一个新的div。目前我已经想到了两个可能性:

  • 一个JS脚本,用onclick()来改变其中一个div的InnerHTML;
  • 提供一个新的,几乎相同的HTML文件,其中一行更改为“收到的信息”。

但是,我觉得使用Flask的方法在同一个文件(home.html)中有一种更简单的方法。我花了一些时间搜索文档和SO,但没有成功。

class UI:
    def __init__(self):
        app = Flask(__name__)

        @app.route('/')
        def home():
            return render_template("home.html")

        @app.route('/', methods=['POST', 'GET'])
        def update_info():
            foo = request.form['foo']
            bar = request.form['bar']
            if request.method == 'POST':
                 return render_template("new_home.html")

        app.debug = True
        app.run()

1 个答案:

答案 0 :(得分:1)

  

一个JS脚本,用onclick()来改变其中一个div的InnerHTML;

在我看来,这将是最好的选择。创建一个div以包含表单上方的消息 - 或者您想要的其他任何地方。我建议使用jQuery,因为它的ajax方法非常适合此类事情。从您的应用返回成功或失败响应(设置状态代码,以便jQuery知道发生了什么),并使用done承诺显示成功或fail承诺显示错误