Атрибут instance_path
Атрибут instance_path доступен только для чтения
и возвращает абсолютный путь к папке instance
текущего приложения Flask. Эта папка предназначена
для хранения данных, которые не должны попадать
в репозиторий: локальных конфигураций, загруженных
файлов, баз данных SQLite и прочего.
По умолчанию папка instance располагается
рядом с пакетом приложения. При создании объекта
Flask путь можно переопределить, передав
параметр instance_path. Значение атрибута
учитывается функциями open_instance_resource
и настройками вида instance_relative_config.
Синтаксис
app.instance_path
Пример
Давайте выведем путь к папке instance
для стандартного приложения:
from flask import Flask
app = Flask(__name__)
print(app.instance_path)
Результат выполнения кода:
"/home/user/project/instance"
Пример
Давайте переопределим папку instance
через параметр конструктора:
from flask import Flask
app = Flask(__name__, instance_path='/tmp/my_instance')
print(app.instance_path)
Результат выполнения кода:
"/tmp/my_instance"
Пример
Давайте сохраним файл в папке instance,
используя значение атрибута:
import os
from flask import Flask
app = Flask(__name__)
path = os.path.join(app.instance_path, 'data.txt')
os.makedirs(app.instance_path, exist_ok=True)
with open(path, 'w') as f:
f.write('hello')
После выполнения в папке instance появится
файл data.txt с содержимым hello.
Смотрите также
-
класс
Flask,
которому принадлежит данный атрибут -
атрибут
root_path,
который хранит путь к корню приложения -
атрибут
static_folder,
который задаёт папку статических файлов -
атрибут
config,
который хранит настройки приложения