Атрибут static_folder
Атрибут static_folder применяется к объекту
Blueprint и указывает, из какой папки отдавать
статические файлы. По умолчанию это папка
'static' внутри директории блюпринта.
Путь можно задать абсолютным или относительным.
Если передать None, статика для блюпринта
отключается. Также атрибут работает в паре с
static_url_path, который задаёт адрес,
по которому файлы будут доступны.
Синтаксис
Blueprint(name, import_name, static_folder='static')
Пример
Давайте создадим блюпринт с папкой статики
'static' и отдадим из неё файл:
from flask import Flask, Blueprint
app = Flask(__name__)
bp = Blueprint(
'bp',
__name__,
static_folder='static'
)
@app.route('/')
def index():
return 'hello'
app.register_blueprint(bp, url_prefix='/bp')
Файл static/style.css внутри пакета
блюпринта будет доступен по адресу
/bp/static/style.css.
Пример
Давайте укажем собственную папку и собственный URL-путь для статики:
from flask import Flask, Blueprint
app = Flask(__name__)
bp = Blueprint(
'bp',
__name__,
static_folder='assets',
static_url_path='/files'
)
@app.route('/')
def index():
return 'hello'
app.register_blueprint(bp, url_prefix='/bp')
Теперь файлы из папки assets доступны
по адресу /bp/files/....
Пример
Давайте отключим статику для блюпринта, передав
None:
from flask import Flask, Blueprint
app = Flask(__name__)
bp = Blueprint(
'bp',
__name__,
static_folder=None
)
@bp.route('/')
def index():
return 'hello'
app.register_blueprint(bp, url_prefix='/bp')
В этом случае блюпринт не обслуживает статические файлы, но его маршруты продолжают работать.
Смотрите также
-
класс
Blueprint,
который создаёт блюпринт приложения -
атрибут
template_folder,
который задаёт папку с шаблонами блюпринта -
атрибут
url_prefix,
который задаёт префикс адресов блюпринта -
метод
route,
который вешает обработчик на адрес блюпринта