Атрибут static_folder
Атрибут static_folder применяется к приложению Flask
и хранит путь к папке со статическими файлами: CSS, JavaScript,
изображениями и другими ресурсами. Flask использует эту папку,
когда строит маршрут для статики и возвращает файлы по запросу.
Значение атрибута задаётся при создании приложения или позже,
через параметр static_folder.
По умолчанию папка статики называется static и лежит
рядом с модулем приложения. Если передать абсолютный путь,
Flask будет искать файлы по нему. Если передать относительный путь,
он будет вычислен от корня приложения. Также атрибут может иметь
значение None, тогда маршрут статики не создаётся.
Синтаксис
app = Flask(import_name, static_folder='static')
После создания приложения значение можно прочитать:
app.static_folder
Пример
Давайте создадим приложение Flask и посмотрим значение атрибута
static_folder по умолчанию:
from flask import Flask
app = Flask(__name__)
print(app.static_folder)
Результат выполнения кода:
"/path/to/project/static"
Пример
Давайте укажем собственную папку для статических файлов
с именем assets:
from flask import Flask
app = Flask(__name__, static_folder='assets')
print(app.static_folder)
Результат выполнения кода:
"/path/to/project/assets"
Пример
Давайте разместим файл style.css в папке статики
и отдадим его через шаблон:
body {
color: #333;
}
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
<p>hello</p>
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
Результат выполнения кода для адреса /:
<link rel="stylesheet" href="/static/style.css">
<p>hello</p>
Пример
Давайте отключим маршрут статики, передав None
в параметр static_folder:
from flask import Flask
app = Flask(__name__, static_folder=None)
print(app.static_folder)
Результат выполнения кода:
None
Смотрите также
-
класс
Flask,
которому принадлежит атрибут static_folder -
атрибут
static_url_path,
который задаёт URL-префикс для статических файлов -
атрибут
template_folder,
который задаёт папку с шаблонами -
атрибут
root_path,
который хранит корневой путь приложения