Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Зависаине старинцы, бесконечная загрузка [RSS Feed]

#1 Окт. 19, 2013 23:04:39

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Зависаине старинцы, бесконечная загрузка

FishHook
gunicorn, penis canina, vulva regina
сколько живу ни разу не слышал …

Офлайн

#2 Окт. 19, 2013 23:14:32

in
Зарегистрирован: 2013-09-11
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Зависаине старинцы, бесконечная загрузка

FishHook
>>>Встроенным веб сервером я не пользуюсь нигдеВас этому кто так научил? Задавайте вопросы этому негодяю. Вы - “всего два месяца работаю с django”, да хоть сколько месяцев, есть мануалы, учебники, официальные руководства … Если Вы выдумываете самостоятельно как не надо делать, кто Вам виноват? Идите пошагово по туториалу, если не получилось - вопрос, “а какого же черта не получилось?”А у Вас странная позиция, чего то нахеровертил сам не понял, а теперь по отрывочным данным Вы хотите чтобы кто-то восстановил Ваши действия и нашел в них ошибку.

Я не сделал ничего особенного. Настроил апач, перекомпилировал mod под питон 3. Настроил виртуальное окружение. Сделал полностью анологичный локальный сервер на Ubuntu. Написал проект в PyCharm. Все по туториалам как вы и говорите. Какой информации вам не хватает чтобы сделать выводы? Фотографии сохраняются в папку, которая указывается в сеттингах проекта как MEDIA_ROOT все ссылки на них сохраняются в базе данных с переменной MEDIA_URL также указанной в настройках.
путь к статическим файлам указываю в apache2.conf

        <VirtualHost 62.109.5.130:80 >
	ServerName simpleboard.ru
	CustomLog /var/www/httpd-logs/simpleboard.ru.access.log combined
	DocumentRoot /var/www/python_developer/data/www/simpleboard.ru
	ErrorLog /var/www/httpd-logs/simpleboard.ru.error.log
	ServerAdmin futuresimple@yandex.ru
	ServerAlias www.simpleboard.ru
	SuexecUserGroup python_developer python_developer
	WSGIScriptAlias / /www/django/simpleboard/simpleboard/wsgi.py
	Alias /static/admin/ /www/media/admin/	
	Alias /static/ /www/django/simpleboard/simpleboard/static/
	
</VirtualHost>

Офлайн

#3 Окт. 19, 2013 23:26:06

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Зависаине старинцы, бесконечная загрузка

>>MEDIA_ROOT
>>MEDIA_URL

И при чем тут статика?

 href="{% static 'css/login.css'%}"
То есть Вы хотите, что бы тег {% static %} отдавал медиа-файлы?
Или что?

Почему я несколько резко отнесся к Вашему топику, Вы уж меня извините, но Вы провоцируете.
Конкретно.
>>а на дев сервере нормально все ?
>>да все отлично
>>Встроенным веб сервером я не пользуюсь
Это, дружище, свинство. Вам же помочь хотят, а Вы как на экзамене филеем вертите.

А ошибка Ваша в том, что Вы путаете понятия. Статика и загруженные пользователем файлы - это не одно и то же. Вообще не одно и то же. Статические файлы - всякие там скрипты, стили, статические страницы - в продакшене они вообще не доходят до джанги, их отдает апач. Ну как апач будет отдавать ваши файлы, если
>>>Сохраняю на сервер, в базе храню только ссылки.
откуда он эти ссылки возьмет, если они в базе?????



Офлайн

#4 Окт. 19, 2013 23:36:50

in
Зарегистрирован: 2013-09-11
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Зависаине старинцы, бесконечная загрузка


FishHook
То есть Вы хотите, что бы тег {% static %} отдавал медиа-файлы?
Или что?

Почему я несколько резко отнесся к Вашему топику, Вы уж меня извините, но Вы провоцируете.
Конкретно.
>>а на дев сервере нормально все ?
>>да все отлично
>>Встроенным веб сервером я не пользуюсь
Это, дружище, свинство. Вам же помочь хотят, а Вы как на экзамене филеем вертите.

Согласен, я не специально. Перепутал веб сервер джанго с локальным сервером. В понятиях запутался

А ошибка Ваша в том, что Вы путаете понятия. Статика и загруженные пользователем файлы - это не одно и то же. Вообще не одно и то же. Статические файлы - всякие там скрипты, стили, статические страницы - в продакшене они вообще не доходят до джанги, их отдает апач. Ну как апач будет отдавать ваши файлы, если
>>>Сохраняю на сервер, в базе храню только ссылки.
откуда он эти ссылки возьмет, если они в базе?????

Спасибо, начинаю понимать. Вероятнее всего апач действительно не в курсе где медиа. Правильно ли я понимаю, что ему нужно указать на медиа папку в блоке <Virtualhost> или вообще нельзя использовать базу даже для хранения ссылок. Я просто не представляю как иначе хранить ссылки елси не в базе.

Офлайн

#5 Окт. 19, 2013 23:52:21

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Зависаине старинцы, бесконечная загрузка

Статику пусть отдает апач (нжинкс, гуникорн, …).
Под статикой мы понимаем части нашего проекта, которые НЕ СТРОЯТСЯ ДИНАМИЧЕСКИ В ЗАВИСИМОСТИ ОТ ЗАПРОСА. Вот смотрите, Ваши шаблоны - это не статика, потому что каждый раз при обращении клиента к серверу, сервер делает новую HTML-страницу на основе шаблона. Никто заранее не знает, какая страница получится. Невозможно отдать это веб-серверу, потому что тут должен поработать скрипт и результат, который отдает веб-сервер клиенту есть результат работы скрипта. Ваши медиа-файлы - это тоже результат работы скрипта. Скрипт обрабатывает запрос, получает ссылку из базы, по ссылке получает файл, тут у нас работает роутинг, ОРМ, куча всякой фигни. Это - не статика.
А что такое статика? Это фалы JS, картинки, стили. Их джанго никак не подготавливает, не обрабатывает, их можно отдавать просто как файлы по имени и пути, и это хорошо делает веб-сервер, вот тут его работа.



Офлайн

#6 Окт. 20, 2013 00:03:19

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Зависаине старинцы, бесконечная загрузка

Хотя я Вас еще больше запутал. Файлы, сами по себе - конечно же может отдавать веб-сервер по имени и пути, вопрос в том, что это имя и путь не известны заранее. Вы в шаблоне должны “сгенерировать” путь до файла, который вполне может отдать апач. Раз вы храните пути к файлам в базе, то используйте что-то типа

class Document(models.Model):
    docfile = models.FileField(upload_to='documents')
#view
context["document"] =  Document.objects.get(.....)
{{ document.docfile.url }}
пути сами нормальные подставятся



Отредактировано FishHook (Окт. 20, 2013 00:08:26)

Офлайн

#7 Окт. 20, 2013 00:13:53

in
Зарегистрирован: 2013-09-11
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Зависаине старинцы, бесконечная загрузка

FishHook
Хотя я Вас еще больше запутал. Файлы, сами по себе - конечно же статика. Вы в шаблоне должны указать путь до файла, который вполне может отдать апач. Раз вы храните файлы в базе, то используйте что-то типа

У меня возникли проблемы с полем FileField и я стал хранить ссылки на медиа в CharField ах, таким образом:
   
       cover = models.CharField(max_length=350)
       thumbnail = models.CharField(max_length=350)

Типичная ссылка/значение например такие: “/media/project/original/137.png”


Отредактировано in (Окт. 20, 2013 00:14:23)

Офлайн

#8 Окт. 20, 2013 00:23:01

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Зависаине старинцы, бесконечная загрузка

in
У меня возникли проблемы
Какие? Давайте попробуем разобраться.



Офлайн

#9 Окт. 20, 2013 00:37:40

in
Зарегистрирован: 2013-09-11
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Зависаине старинцы, бесконечная загрузка

FishHook

При попытке использовать PIL. в некоторых важных функциях где должен был быть использован Integer сам PIL использовал Float и выкидывал ошибку из своих внутренностей. Поэтому я стал искать альтернативу и нашел pg magick. Это Java библиотека с оберткой на python. Мне также очень понравились возожности трансформации изображений и я остановился на ней и больше к PIL не возвращался. Но все туториалы с FileFiled были написаны с PIL я не смог понять как мне объект Image этой либы запихнуть в Filefield. Метод с временным файлом который обычно использовался в туториалах у меня не сработал. Насколько помню заругался на кодировку.

Я еще тогда заподозрил, что это не очень хорошо. Но специально создал отдельную ветку, чтобы узнать насколько критично что я не использую FileField и в итоге, то ли меня никто не понял, то ли я сам неправильно понял ответы но меня успокоило то, что все как один говорили что файлам не место в БД. Для меня это означало, что использования filefield нужно избегать.

Вот ссылка на топик : http://python.su/forum/topic/22435/

Отредактировано in (Окт. 20, 2013 00:39:04)

Офлайн

#10 Окт. 20, 2013 00:53:53

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Зависаине старинцы, бесконечная загрузка

in
FileField и в итоге, то ли меня никто не понял, то ли я сам неправильно понял ответы но меня успокоило то, что все как один говорили что файлам не место в БД. Для меня это означало, что использования filefield нужно избегать.
FileField не сохраняет файлы в БД. Там сохраняется только путь к файлу.



Офлайн

  • Начало
  • » Django
  • » Зависаине старинцы, бесконечная загрузка[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version