Форум программистов, компьютерный форум, киберфорум
Python: Flask
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2 / 2 / 0
Регистрация: 05.12.2018
Сообщений: 109

Поменять static папку на другую

06.04.2023, 04:55. Показов 1747. Ответов 7

Студворк — интернет-сервис помощи студентам
Всех приветствую, может пожалуйста кто подсказать: у меня имеется такого вида проект:

Backend-Flask/
/static
...
/templates
base.html
...
myin.py
Frotented-React/
/js

Можно ли как-нибудь поменять директорию static во фласке на ->
Frotented-React/js - то есть по дефолтному значению сделать её static папкой для flask.

Пытался сделать так:
Python
1
app = Flask(__name__, static_url_path="../Frotented-React/js", static_folder='js')
Но фласк выпадает с ошибкой не даёт запустить проект.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2023, 04:55
Ответы с готовыми решениями:

Как скопировать папку с файлами в другую папку с заменой средствами php?
Как скопировать папку с файлами в другую папку с заменой средствами php? Из "Z:/home/post.ru/www/style/" в...

Выбрать случайную папку, скопировать из неё все файлы и перенести в другую папку
Добрый день! Прошу помощи в написании батника. Имеется папка A с неким количеством других папок. Требуется из этой папки выбрать...

Работа с файлами. Как сканировать папку и переносить от туда лишнее в другую папку
Хочу написать программу со следующим функционалом: Имеется директория, по пути C:\MyFolder. В этой папке лежат следующие директории:...

7
 Аватар для Ender Che
517 / 407 / 77
Регистрация: 29.05.2018
Сообщений: 1,318
06.04.2023, 09:24
Python
1
class flask.Flask(import_name, static_url_path=None, static_folder='static', static_host=None, host_matching=False, subdomain_matching=False, template_folder='templates', instance_path=None, instance_relative_config=False, root_path=None)
отсюда: https://flask.palletsprojects.com/en/latest/api/

Т.е. так:
Python
1
app = Flask('yourapplication', static_url_path='path')
0
2 / 2 / 0
Регистрация: 05.12.2018
Сообщений: 109
07.04.2023, 22:58  [ТС]
В этом и проблема изменить не получается, выдает ошибку запуска проекта.
0
 Аватар для Ender Che
517 / 407 / 77
Регистрация: 29.05.2018
Сообщений: 1,318
07.04.2023, 23:05
А так если попробовать:
Python
1
static_url_path="../Frotented-React/"
?
0
2 / 2 / 0
Регистрация: 05.12.2018
Сообщений: 109
08.04.2023, 00:42  [ТС]
Неа не получается, он как будто не может выйти на 1 директорию назад - так же требует что бы static_url_path = "начинался со /"

Добавлено через 43 минуты
Видимо он так же работает только на 1 вложенность - то-есть не получится указать например в той же папке где главный файл main.py например вот так (folder/js) <-- сработает только на "/folder"
0
 Аватар для kazak
3599 / 2741 / 354
Регистрация: 11.03.2009
Сообщений: 6,298
09.04.2023, 00:12
Цитата Сообщение от Xpystum Посмотреть сообщение
Неа не получается, он как будто не может выйти на 1 директорию назад - так же требует что бы static_url_path = "начинался со /"
В unix пути разделяются на абсолютные и относительные, абсолютные задаются с начальным слешем, относительные без и рассчитываются от текущей папки. Текущая папка, это папка из которой скрипт запускается, т.е. пример имеем
Code
1
/my_projects/project1/main.py
находясь в /my_projects/project1/ и запуская скрипт командой
Code
1
python main.py
текущая папка будет /my_projects/project
а находясь в /my_projects и запуская скрипт командой
Python
1
python /my_projects/project1/main.py
или
Python
1
python ./project1/main.py
текущая папка будет определяться как /my_projects
Соответственно, задавая в скрипте относительные пути и запуская скрипт из разных папок можно получить неприятный эффект.

Добавлено через 2 минуты
Цитата Сообщение от Ender Che Посмотреть сообщение
"../Frotented-React/"
"../Frotented-React/"
означает, что папка Frotented-React находится в родительской для текущей папке
"./Frotented-React/"
папка Frotented-React находится в той же папке что и текущая.
0
2 / 2 / 0
Регистрация: 05.12.2018
Сообщений: 109
10.04.2023, 16:49  [ТС]
То-есть получается выйти назад - на директорию не получится?
Я хотел просто логику своего проекта разделить на две папки что бы с ними работать -
../Frotented-React/ - я понял то, что в моё случае как раз это поможет выйти к родителю и зайти в папку Frotented-React - но к сожалению фласк все равно не хочет работать - выдавая ошибку (запуска проекта)
Приложил скрин проекта.

P.S из-за того что Flask не может выйти на директорию назад что бы найти папку Frotented-React - в WEBPORTAL - пришлось папку создавать на уровне где лежит скрипт.
Миниатюры
Поменять static папку на другую  
0
 Аватар для kazak
3599 / 2741 / 354
Регистрация: 11.03.2009
Сообщений: 6,298
10.04.2023, 20:22
Лучший ответ Сообщение было отмечено Xpystum как решение

Решение

Цитата Сообщение от Xpystum Посмотреть сообщение
То-есть получается выйти назад - на директорию не получится?
Относительно ТЕКУЩЕЙ папки можно, но никто не гарантирует, что Вы получите нужную папку

Если нужно работать с папками/файлами на сервере, можно позаимствовать джанговский подход
Python
1
2
3
import os
 
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
os.path.abspath(__file__) - возвращает абсолютный путь до файла в котором объвлен вызов, если мы пропишем эту конструкцию в файле main.py, соотвественно получим полный путь до main.py
os.path.dirname() - возвращает путь к каталогу, в котором расположен файл, если в параметрах передан путь к файлу, или путь к родительскому каталогу, если в параметрах передан путь к каталогу.
Соответственно os.path.dirname(os.path.abspath(__file__ )) в main.py вернет путь к родительскому каталогу main.py, если это не корневой каталог проекта, оборачиваем в дополнительные вызовы os.path.dirname, пока не получим нужный.

Далее, когда нужно будет задавать пути внутри проекта
Python
1
filepath = os.path.join(BASE_DIR, '<путь относительно корня проекта>')
Вариант с pathlib
Python
1
2
3
4
from pathlib import Path
 
BASE_DIR = Path(__file__).resolve(strict=True).parent # каждый вызов parent - переход на уровень вверх
filepath = BASE_DIR / '<путь относительно корня проекта>'
Такой подход позволяет работать с файлами проекта независимо, в какой каталог проект был помещен, и не зависимо откуда был запущен.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2023, 20:22
Помогаю со студенческими работами здесь

Выбрать случайную папку, скопировать из неё все файлы и перенести в другую папку
Добрый день! Прошу помощи в написании скрипта. Имеется папка A с неким количеством других папок. Требуется из этой папки выбрать...

Как перенести папку с содержимым в другую папку на диске
Вопрос и есть заголовок) Как перенести папку с файлами в другую папку на диске? Пойдёт даже вариант обращаться к каждому файлу в папке...

Как копировать папку и все её содержимое в другую папку?
Привет, я бы хотел сделать в программе так чтоб она копировала одну папку и всё её содержимое в другую папку, надо так чтобы копировались...

Как переместить папку с её содержимым в другую папку по пути?
string oldPath = $@&quot;D:\БИП\Курс 4\Диплом Антона\Учёт Школьных Услуг\Учёт Школьных Услуг\bin\Debug\папка1)&quot;; string...

Как поменять права на папку named в папку usr
Как поменять права на папку named в папке var . На Centos 7.7 после установки станадартного пакета BIND через yum -y install bind...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru