Автоматически создавать маршрут и html файл с Python - Flask - PullRequest
1 голос
/ 25 февраля 2020

У меня есть общий вопрос относительно Python и Flask. Я пытаюсь достичь ниже:

  1. Одна веб-страница, есть ссылка под названием «создать проект», и пользователь может нажать на нее.
  2. Внутри «создать» страница проекта, это форма, в которой пользователь может ввести такую ​​информацию, как имя проекта, а затем отправить.
  3. После отправки формы она автоматически создаст файл html в каталоге шаблонов, используя отправленные информация.
  4. В приложении Python оно автоматически создает @app.route() для этого файла html (это возможно?).

Я знаю, как выполнить шаги 1 и 2. Шаг 3 немного сложен для меня, но я думаю, что могу прочитать базовый файл html, а затем записать его, используя with open("filename.html", "r") и with open("filename_copy.html, "w"), но, возможно, есть лучшие способы. Я понятия не имею, как сделать шаг 4, и это то, что я действительно пытаюсь выяснить. Цель состоит в том, чтобы позволить пользователю создать проект на веб-странице, а затем мое приложение автоматически создаст ссылку для этого проекта, а затем этот проект отобразится на панели инструментов или что-то еще, чтобы пользователь мог получить к нему доступ.

Заранее спасибо!

Обновление от 30.04.2020:

Вот что я в итоге и сделал. В файле HTML я создал «href» и использовал Jinja для получения информации из моего приложения Python.

<a href="{{variable}}">{{variable}}</a>

А в приложении Python я создал:

@app.route("/<current_project>")
def current_project(current_project):
    return render_template("{}.html".format(current_project))

Если передаваемая «переменная» называется «project_1», она направит меня к маршруту «/ project_1», который является динамической c ссылкой, и затем отобразит «project_1. html». , пока файл существует.

1 Ответ

0 голосов
/ 25 февраля 2020

Вы можете добавить dynamic routing в flask и код выглядит следующим образом:

# you can also use a particular data type such as int,str
# @app.route('post/<int:id>', methods=['GET', 'POST'])
@app.route('post/<variable>', methods=['GET'])
def daily_post(variable):
    #do your code here
    return render_template(f"{variable}.html")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...