Flask: как вернуть сайт за пределы каталога шаблонов - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь вернуть веб-сайты (файлы html), которые находятся за пределами каталога шаблонов.

Каталог файла .py:

archiv/archiv/web/article/articles.py

Каталог файла html:

instance/articles/private/abc/abc.html

Мой код article.py:

from flask import Blueprint, render_template
bp = Blueprint('articles', __name__, url_prefix='/articles')

@bp.route('/<article>')
def show_article(article):
    """Show a article."""
    base_url = '/instance/articles/private/'
    url_to_return = base_url + str(article) + '/' + str(article) + '.html'
    # return render_template(url_to_return)
    return "Hello " + article

Доступ к маршруту получен, но когда я пытаюсь вернуть сайт (комментарий), я не работаю -> шаблон не найден. Я почти уверен, что render_template - это не тот путь, но я не нашел ничего подходящего.

Может кто-нибудь показать мне, как вернуть сайт abc.html после вызова маршрута?

Большое спасибо заранее

1 Ответ

1 голос
/ 30 октября 2019

Вы можете добавить новый каталог шаблонов при создании проекта. Когда вы передаете имя шаблона в функцию render_template, он также проверяет новое местоположение.

from flask import Flask, Blueprint, render_template

bp = Blueprint(
    'articles',
    __name__,
    url_prefix='/articles',
    template_folder="../instance", # New line!
)

@bp.route('/<article>')
def show_article(article):
    """Show a article."""
    return render_template("articles/private/abc.html")

app = Flask(__name__)
app.register_blueprint(bp)

Из колбы Документация (для чертежа)

template_folder - папка с шаблонами, которая должна быть добавлена ​​в путь поиска шаблонов приложения. Путь относительно корневого пути проекта. Шаблоны чертежей по умолчанию отключены. Шаблоны шаблонов имеют более низкий приоритет, чем шаблоны в папке шаблонов приложения.

Если вы хотите добавить этот каталог шаблонов во все приложение, вы можете установить template_name при создании экземпляра Flask. Проверьте это для более.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...