Flask webapp 生成永久报告为 link

Flask webapp generating permanent report as link

好的,我找不到任何符合我的问题或用例的描述。

我开发了一个 flask 网络应用程序,用户可以在第一个模板中输入一些表单数据来进行数据库查询。基于查询结果,呈现具有输出的第二个模板,这将以可读的方式呈现结果。

我的问题是,我想为 documentation/report 提供一个 link,有人只需打开 link 就可以查看显示的相同报告。

或者将生成的 html 另存为 pdf 格式保存在 google 驱动器上。

有什么解决这个问题的建议吗?

当您看到示例代码时,我想打开 out.html,因为它是稍后使用特定用户输入呈现的。

我没有找到任何生成那个 link 的方法,如果可能的话?


from flask import Flask
app = Flask(__name__)

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

@app.route('/out')
def out():
   input = request.form
   return render_template("out.html", input=input["Test"])

Start.html

  <!doctype html>
  <html>
  <body>
  <h1>Start</h1>

  <form action = "/out" method = "POST">
          <p>Test<input type = "text" name = "Test" required/></p>
          <p><input type = "submit" value = "SUBMIT" /></p>
      </form>
  </body>
  </html>

  '''

  '''out.html

  <!doctype html>
  <html>
  <body>
  <h1>Out</h1>

  <p>{{input}}</p>

  </body>
  </html>

from flask import Flask, request

app = Flask(__name__)

@app.route("/")
def index():
    return """<form action="/result" method="GET">
          <input type="text" name="test"><input type="submit"></form>"""

@app.route("/result")
def result():
    return request.args.get("test")
if __name__ == "__main__":
    app.run()

您可以从地址栏复制 link,结果相同。

编辑:

我无法理解你的问题。 所以我猜你的 {{input}} 没有得到价值。 如果是这样,

您需要在后端执行此操作:

......
input = request.args.get("test")
return render_template("out.html", input=input)
......

编辑 2

或者您可以使用 sql 数据库存储输入值,每个新输入值都有 16 位唯一 ID。

....
@app.route("/<unique>")
def result(unique):
    #retrieve the input values from the database using the id
    # and render the template