Веб-приложение Flask создает постоянный отчет в виде ссылки - PullRequest
0 голосов
/ 26 июня 2019

Хорошо. Я не могу найти описание, которое соответствует моей проблеме или сценарию использования.

Я разработал веб-приложение для колб, в котором пользователь может ввести некоторые данные формы в первый шаблон, чтобы сделатьзапрос к базе данных.На основе результата запроса отображается второй шаблон с выводом, который будет отображать результаты в удобочитаемом виде.

Моя проблема в том, что я хотел бы предоставить ссылку на документацию / отчет, где кто-то просто открываетссылка и может просматривать тот же отображаемый отчет.

Или же сохранить сгенерированный HTML-файл в формате PDF на Google Диске.

Есть предложения, как решить эту проблему?

Когда высм. пример кода, я хочу открыть файл out.html в том виде, в котором он был представлен с определенным пользовательским вводом в более поздний момент времени.

Я не нашел никакого способа, как сгенерировать эту ссылку, если онавозможно?


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>

1 Ответ

0 голосов
/ 26 июня 2019
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()

Вы можете скопировать ссылку из адресной строки, которая дает тот же результат.

РЕДАКТИРОВАТЬ:

Я не могу понять вашу проблему.Поэтому я предполагаю, что ваш {{input}} не получает значение.Если это так,

Вам нужно сделать это в своем бэкэнде:

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

РЕДАКТИРОВАТЬ 2

Или вы можете использовать базу данных sql для хранениявходные значения с 16-битным уникальным идентификатором для каждого нового входного значения.

....
@app.route("/<unique>")
def result(unique):
    #retrieve the input values from the database using the id
    # and render the template 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...