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

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

06.04.2023, 04:55. Показов 1826. Ответов 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
518 / 408 / 77
Регистрация: 29.05.2018
Сообщений: 1,339
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
518 / 408 / 77
Регистрация: 29.05.2018
Сообщений: 1,339
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
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
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
3604 / 2744 / 356
Регистрация: 11.03.2009
Сообщений: 6,306
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
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru