@pydjango
Django

Полезная информация и правила: https://github.com/amureki/django_faq Вакансии и резюме: @django_jobs Пофлудить идём сюда: @django_flood Статистика чата: combot.org/chat/-1001063854692

1741 members

Архив канала @pydjango 28 сентября 2016 г.

01:36:23 ДП
User 2895769
User 139068333
откуда у людей такие нужды
контейнеры удобны
02:56:19 ДП
User 142429867
User 78195183
Ребята как забилдить джанго проект в докер?
Ищи на гитхабе django-cookiecutter
03:00:06 ДП
User 567937
плюсую
03:00:12 ДП
User 567937
пайденди знает свое дело
03:01:17 ДП
User 567937
там тебе и ssl из коробки от let's encrypt
03:01:25 ДП
User 567937
и поддержка celery
03:01:56 ДП
User 567937
и еще море всякой годноты
08:34:49 ДП
User 164024037
Господа, а встречал кто какой-нибудь ручной jquery или типа того обрезатор изображений для админки джанго?
08:35:22 ДП
User 164024037
Выбрал файл через model.ImageField а потом ручками показал откуда куда обрезать и отправил на сохранение.
08:44:17 ДП
User 164024037
https://github.com/jonasundderwolf/django-image-cropping нашёл
github.com/jonasundderwolf/django-image-cropping
django-image-cropping - Django helper application to easily and non-destructively crop arbitrarily large images in admin and frontend.
08:47:43 ДП
User 57296486
User 567937
пайденди знает свое дело
не денди а дэнни) а вообще я терпеть не могу кукикаттер этот, он мне не подходит
09:27:57 ДП
User 139068333
User 164024037
Господа, а встречал кто какой-нибудь ручной jquery или типа того обрезатор изображений для админки джанго?
я такое сейчас пишу. но если только обрезать есть cropper.js
09:29:09 ДП
User 164024037
понял
ну вон то что я нашёл более-менее канает. Не вполне удобно что оно картинку не выводит сразу, а приходится "Save and continue editing", но для сельской местности сойдёт
09:30:53 ДП
User 139068333
оно использует http://jcrop.org
не знал о нем
09:43:58 ДП
User 567937
User 57296486
не денди а дэнни) а вообще я терпеть не могу кукикаттер этот, он мне не подходит
опечатался ага. а чем не подходит? мы на ней подняли несколько довольно больших сервисов, работает, масштабируется как надо
09:46:28 ДП
User 139068333
сборочка от васяна
10:41:17 ДП
User 57296486
User 567937
опечатался ага. а чем не подходит? мы на ней подняли несколько довольно больших сервисов, работает, масштабируется как надо
во-первых я уже много лет не использую селери, но очереди использую через rq или uwsgi. во-вторых я терпеть не могу их подход с кучей файлов настроек, мне нравится подход как в django-configurations. ну и еще не помню чем мне непонравилось, но мне и этого достаточно. у меня просто валяется свой шаблон проекта и аппов которые я использую и все.
10:53:53 ДП
User 100243492
User 57296486
во-первых я уже много лет не использую селери, но очереди использую через rq или uwsgi. во-вторых я терпеть не могу их подход с кучей файлов настроек, мне нравится подход как в django-configurations. ну и еще не помню чем мне непонравилось, но мне и этого достаточно. у меня просто валяется свой шаблон проекта и аппов которые я использую и все.
поддерживаю, и городить этот селери который тяжелый как слон, а работает отчасти на простых требованиях... не комильфо как-то! Да и настройки по хорошему хранятся все в одном месте
10:59:52 ДП
User 57296486
да, часто использовать тяжеловесный селери это как стрельба из пушки по воробьям)) но я и от rq потихоньку отхожу - через uvloop или channels таски делаю иногда. с настройками и вправду беда когда куча файлов)) django-configurations крутая штука. там просто один файлик settings.py и все настройки классами, можно миксины делать. или что-то переопределять. и кроме того там их коробки валидация настроек и можно брать из переменных окружения. кстати в uwsgi я тоже делаю секции с разными настройками для разных сред а не имею кучу файлов для продакшна или дев
11:00:50 ДП
User 139068333
какие говорите альтернативы селери ?
11:01:03 ДП
User 57296486
еще бесит когда на хероку используют whitenoise))
11:01:08 ДП
User 18500084
django-rq
11:01:17 ДП
User 18500084
Ещё чтото было
11:03:02 ДП
User 100243492
User 57296486
еще бесит когда на хероку используют whitenoise))
еще бесит когда на докер....
11:03:30 ДП
User 57296486
вот как пример бездумного использования https://github.com/mirumee/saleor/issues/465
github.com/mirumee/saleor/issues/465
Why do you using whitenoise with uWSGI? uWSGI can serve static assets much faster than whitenoise! Just look for options: "static-map" or "static-map2" in uWSGI docs. http://uwsgi-docs.readthedocs...
11:03:34 ДП
User 139068333
как же хорошо не использовать докер
11:03:52 ДП
User 57296486
ну докер я использую
11:04:29 ДП
11:04:45 ДП
11:04:55 ДП
11:05:02 ДП
User 164024037
простите, затупил
11:06:01 ДП
User 100243492
а нахрена его парсить? если нужен профессиональный парсер, вам бетенька к  Perl :)
11:06:22 ДП
User 139068333
парсер как человек ?
11:06:39 ДП
User 139068333
чем питон плох для парсенья и перл лучше ?
11:07:29 ДП
User 100243492
ничем не плох, просто перл это единая регулярка)
11:08:10 ДП
User 139068333
а кто ж регулярками парсит ?
11:08:21 ДП
User 100243492
да все парсят
11:08:38 ДП
User 139068333
никто не парсит. уже сто лет xpath есть
05:29:32 ПП
User 164024037
А с django-sendfile работал кто-нибудь?
в модели задаю
file = models.FileField(upload_to='download/', storage=FileSystemStorage(location= settings.SENDFILE_ROOT)
т.е. получается рядом с media_root "media/" ещё одна директория "protected/"

В project/urls.py прописаны сразу оба пути
if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
if settings.DEBUG: urlpatterns += static(settings.SENDFILE_URL, document_root=settings.SENDFILE_ROOT)

Файл закачивается куда нужно, но в итоге сохраняет ссылку на него как если бы я его качал в storage=MEDIA_ROOT

Где именно я туплю?
05:33:11 ПП
User 378433
а зачем?
05:33:19 ПП
User 378433
nginx сам не может их раздавать что ли?
05:33:52 ПП
User 164024037
мне нужно отдавать эти файлы только определённым заологиненым пользователям
05:34:20 ПП
User 164024037
джанго-сендфайл и есть эта прослоечка межу самими серверами и джанговской логикой
05:35:25 ПП
User 378433
а нельзя того же самого добиться, передав в StreamingHttpResponse файловый дескриптор?
05:35:30 ПП
User 378433
он же iterable.
05:35:39 ПП
User 378433
и стрим принимает Iterable.
05:35:52 ПП
User 378433
разве что заголовки малясь другие будут.
05:36:23 ПП
05:36:23 ПП
User 164024037
честно скажу - я ещё не знаю на чём хостинг крутится
05:36:27 ПП
User 378433
Есть даже FileResponse.
05:36:39 ПП
User 378433
from django.http import FileResponse
response = FileResponse(open('myfile.png', 'rb'))
05:37:00 ПП
User 164024037
о, погяжу сейчас, спасибо
05:37:30 ПП
User 378433
не люблю приложки таскать ради одного какого-то действия
05:38:26 ПП
User 164024037
ну, меня бы устроило конкретно сейчас, но как делать это без него я пока не представляю
05:39:27 ПП
User 378433
ну возможно у sendfile есть свое преимущество в загрузке файла в много потоков
05:39:48 ПП
User 378433
если отдавать через приложение, такое наверное нельзя устроить
05:40:04 ПП
User 164024037
я так понял он только заголовки правильные подставляет зато сразу ко всему от апача до гуникорна
05:40:27 ПП
User 164024037
можно, но для этого надо загружать файл в озу
05:40:34 ПП
User 164024037
а это уже как-то слишком
05:41:02 ПП
User 378433
можно не загружать
05:41:08 ПП
User 378433
а читать генератором
05:41:32 ПП
User 378433
ну собсна стриминг респонс это и делает
05:41:36 ПП
User 378433
принимает генератор на вход
05:42:00 ПП
User 378433
а файлреспонс еще оптимизирует ответ для wsgi
05:45:17 ПП
User 164024037
почитаю-подумаю ещё. спасибо.
в крайнем случае можно конечно сторедж просто в медиа руте сделать, или алиас ему туда добавить, но как-то это странненько немного
06:37:38 ПП
User 167554632
задача то в чем?
06:38:09 ПП
User 167554632
складывать файлики в общедоступный репозиторий но не палить ссылки?
06:38:19 ПП
User 167554632
не репозиторий, а бакет скорее.
06:42:32 ПП
User 164024037
Отдавать файлы только авторизированным пользователям и так что бы по прямой ссылке на файл пересланной например одним из авторизованных пользователей другим людям они скачать не могли
06:43:59 ПП
User 167554632
я делал нечто похожее на голанге и с бакетом амазона. там вроде как можно было генерить на лету временные ссылки. т.е. прямой ни у кого не было
06:44:33 ПП
User 167554632
ну а авторизацию думаю можно тоже накидать в качестве элемента ключа
06:46:46 ПП
User 167554632
т.е. смысл в том - сохраняешь файл в бакет. хранишь ключ доступа. генеришь локальную ссылку на файл. когда кто-то обращается к  файлу ты генеришь временную сылку на доступ к файлу, отдаешь ее
06:46:52 ПП
User 167554632
ну и докидываешь авторизацию
06:49:04 ПП
User 164024037
ну да, как вариант
но мне всё равно кажется что заставлять апач или нгинкс как-то проще 
а на локалхосте через manage.py не заводится через вечные косяки с MEDIA_ROOT в урлах
06:49:50 ПП
User 167554632
попробуй под докером разверни боевое окружение
06:51:13 ПП
User 167554632
ну как-то честно говоря фиг знает. авторизацию должно обеспечивать приложение, а не веб-сервер. имхо. просто логически )
06:51:24 ПП
User 167554632
тем более что привязка к юзерам есть
06:51:26 ПП
User 167554632
как я понял
06:51:52 ПП
User 164024037
да я вывешу через день-два и уже на месте проверю, пока не горит
ну так так и получается, смысл что бы веб-сервер на запрос файла отправлял в приложение
06:52:03 ПП
User 164024037
во всяком случае как я это понимаю