2 / 2 / 0
Регистрация: 17.05.2015
Сообщений: 66
|
|
1 | |
Django | Managing static files24.02.2017, 12:04. Показов 935. Ответов 1
Метки нет (Все метки)
Делаю сайт на django, опыт работы с django - начальный, создавая шаблоны столкнулся с особенностью django в подключении css/js и тому подобных файлов, которые они описывают как "static files". Для работы в deployment рекомендуют использовать два сервера: один для обслуживания static/media файлов, и второй для django приложения.
Мне, для моей задачи, кажется это излишним, для сайта предполагается не более ~400 одновременных обращений. Не будет ли лаконичней сделать отдельное django app для выполнения этой задачи? В этом весь вопрос - насколько такой подход может быть небезопасен и производителен. Предполагается что все обращения к static/media файлам будут происходить по url вида r'^static/', дальнейшая обработка которого будет заниматься app_for_static_files.urls, регулярным выражением вида r'^(?P<file_name>[\w\-]+)/$', и, в конечном счете, будет возвращаться файл file_name из определенного каталога для static/media файлов.
0
|
24.02.2017, 12:04 | |
Ответы с готовыми решениями:
1
Static files Не видит static files Django static Django работа с JS, CSS и фото (static) |
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,245
|
|
30.03.2017, 00:58 | 2 |
Мне кажется, тут немного не так надо подходить.
Django отвечает за бизнес-логику. Это медленый процесс и недешевый. И с неопределенным временем исполнения. Ты можешь прогу написать так, что она вообще в бесконечный цикл попадет. В общем, это медленная штука. И ее назначение - дать тебе возможность написать свою функцию. Чтобы именно тебе (!) удобно было. Статику раздает веб-сервер, например, nginx. Статика лежит на серваке в виде файлов - просто на диске. Взял файл, отдал. Не надо самопсной бизнес-логики, и процесс с предсказуемым временем выполнения. Все протестировано, все надежно. Плюс-минус по времени, но ничего там такого страшного: вот файлы, надо их кинуть клиенту. Джанге это поручать не надо. Во-первых, это лучше всего сделает nginx. Или вообще cdn. Во-вторых, Django этого просто не умеет из коробки. Это получится - грести против фреймворка. Зачем он тогда вообще нужен. Только сложнее себе делать - бороться еще с ним. 400 одновременных обращений - ничего себе ненагруженный сайт. Это приличная нагрузка. Ненагруженный сайт - это пять юзеров в день на каком-нибудь сайте-визитке затрапезной швейной мастерской в дальнем уголке империи. В общем, мне кажется, надо почитать про frontend и backend. Фронтэнд выделяет запрос на статику, обрабатывает его сам, а остальные запросы проксирует - пробрасывает дальше, их ловит Gunicorn и вызывает уже обработчик из Django. А Django уже делает то, что ты написал - в базу данных лезет, что-то кумекает и выдает результат.
0
|
30.03.2017, 00:58 | |
30.03.2017, 00:58 | |
Помогаю со студенческими работами здесь
2
Как создать общие static и templates django 1.10 Как в теге static вывести значение из переменной? (Django) Проблемы со static files Django на хостинге слетели static в django 1.10 В системных Program Files/Files (x86)/Data появились различные антивирусы, к папкам которых нет доступа Как объединить 3 раздела HDD в 1 без потерь путей программ(Например с изменением с C:\Program Files на E:\Proram Files)? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
|
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
|
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|