
Davra
26.01.2018
18:52:44
Доброго времени суток, создал модель с TextField'ом, теперь хочу вовыдить только часть текста из того, что хранится в базе, вопрос: как порезать TextField чтобы выводить часть текста?(например с 0 до 30 символа)

Evil
26.01.2018
18:54:25
{{ value|truncatechars:9 }}

Davra
26.01.2018
18:56:02

Tim
26.01.2018
20:18:19
https://djangoforbeginners.com/

Google

Сонячний єнот
26.01.2018
22:24:32
Уже два часа не могу запустить Django на локальном Apache2 ( я знаю о встроенном dev-сервере ), пишет ошибку 500.
error.log - https://gist.github.com/SunRaccoon/be3f5b4d91484a8229c02424ce369a62.

Alex
26.01.2018
23:10:37
Все так делаешь?
https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/modwsgi/

Сонячний єнот
26.01.2018
23:11:04
Именно

Alex
26.01.2018
23:12:21
Не может быть
Недавно по нему делал - все ок было
Значит что то не так все же

Сонячний єнот
26.01.2018
23:13:22
Попробую значит ещё раз.
Та ну блин, стандарный даже не ставится

Kostyantyn
26.01.2018
23:44:45
Может сразу как белый человек?
https://habrahabr.ru/post/226419/
Этот гайд точно рабочий, на прошлой неделе проверял

Alexander
27.01.2018
03:00:48
в современных условиях наиболее продвинутый способ доставки сервиса в продакшен - с помощью контейнеров
если вы ещё не умеете пользоваться Docker’ом или другими системами такого рода (rkt, CRI-O) - научитесь

Google

Alexander
27.01.2018
03:02:04
думаю, через некоторое время неумение работать с контейнерами будет означать профнепригодность
Kubernetes захватывает мир

Evil
27.01.2018
03:06:53

Alexander
27.01.2018
03:08:33
контейнеры нужны чтобы можно было откатиться назад, например, если ты обновил uWSGI при обновлении Ubuntu, а оно сломалось и не хочет запускать больше проекты, это реальная история
а в случае с контейнерами же откатываться очень просто, нет страха сломать что-либо обновлениями

Evil
27.01.2018
03:10:11

Alexander
27.01.2018
03:11:28
ну, почему, собраться может нормально
вот кейс из реальной жизни, в эпоху до контейнеров - я обновлял Ubuntu, после обновления упал uWSGI из-за каких-то либ не тех версий, система обновилась ок, uWSGI стартовался ок, но была ошибка, он фактически не работал
то есть он не то что не билдился, билдился, он даже стартовался
но при этом фактически “кино не показывал”

Evil
27.01.2018
03:12:47
ну я и говорю что-то прямо такое специфическое

Andrey
27.01.2018
03:13:07

Alexander
27.01.2018
03:13:50
контейнеры убирают страх перед обновлениями на 99%

Andrey
27.01.2018
03:14:31
Дженкинс убирает страх перед обновлениями на 100%.
Или какого рода обновления имеются в виду?

Alexander
27.01.2018
03:14:56
обновления системы

Evil
27.01.2018
03:15:00

Alexander
27.01.2018
03:15:01
Ubuntu в данном случае

Andrey
27.01.2018
03:15:02
А, ок
Контейнеры не панацея. И там можно всяких дел наворотить. Да и без них можно жить.

Google

Alexander
27.01.2018
03:16:30
собственно, система чистая, там только Docker, ну то есть обновления уже кроме докера сломать ничего не могут, а ломают они докер или нет - легко проверить, есть ли совместимость или нет, это просто 1 набор пакетов
а сам проект, разумеется, надо тестировать на CI
и тут тоже могут помочь контейнеры, чтобы 100% воспроизвести среду выполнения
например, тот же Pillow зависит много от чего в системе

Evil
27.01.2018
03:18:36
тупо запускается поверх и юзает все из шареда хоста

Alexander
27.01.2018
03:18:59
контейнер запускается из образа, а образ это и есть зафриженная версия оси)
в том-то и дело, что нет ?
от хоста только ядро и всё
абсолютно все версии либ в контейнере свои, они из образа
и никаким образом не связаны с либами, которые на сервере


Alexander
27.01.2018
03:20:21
в этом и фишка, у проекта всегда те же самые либы, и на CI, и у разработчика на компе и на продакшене
думаю, многие скептически относятся к контейнерам потому что не до конца понимают, принцип их работы, тут всё просто)
1. у вас есть некий конфиг/скрипт, который билдит образ контейнера, в докере это Dockerfile
в нём вы указываете некий начальный образ, например, образ чистой ОС, например, дебиана или альпин линукса (примерно то же самое, что у вас на сервере после установки системы)
дальше идут некий шаги, RUN apt-get install … && python3 -m pip install …
дальше идёт указание того, что именно нужно запустить после создания контейнера из этого образа, CMD [“uwsgi”, …]
2. вы делаете docker build (или не вы, а CI) и у вас идёт сборка образа, то есть скачивается образ с чистой операционной системой, туда ставятся все ваши зависимости, системные и питона, туда копируется содержимое вашего проекта
3. вы запускаете новый контейнер из образа, указываете всякие настройки, доступы к базе данных, порты, которые нужно открыть, монтируете некие директории с хоста
4. вы тестируете код, запустив свои тесты внутри контейнера
5. если зелёный статус вы вешаете некий тег на этот образ и пушите его в репозиторий образов, по аналогии с git’ом
6. где-то на сервере этот образ скачивается и из него запускается контейнер, можно запустить сразу несколько контейнеров из 1 образа или несколько контейнеров из образов разных версий и легко переключаться между ними с помощью балансировщика (то есть сначала запускаем контейнер с новой версией, только потом уже переключаем туда трафик, чтобы люди шли в контейнер с новой версией)
и обратите внимание, в случае с контейнерами у вас просто нет ситуации, когда обновления что-то ломают неожиданным для вас образом, ваши зависимости они не обновляются, они каждый раз ставятся с нуля на образ с чистой системой


Evil
27.01.2018
03:42:01
то есть обновили убунту, обновилось ядро
я сам пользуюсь докером, плюс еще с обвязками потипу хироку

Alexander
27.01.2018
03:43:09
то есть вместо
[чистая ОС] -> пакет версии 1.0 -> пакет версии 1.1
будет
[чистая ОС] -> пакет версии 1.0, а потом [чистая ОС] -> пакет версии 1.1

Evil
27.01.2018
03:43:36
ядро если обновили

Google

Evil
27.01.2018
03:43:46
докер же не запускает свои ядра

Alexander
27.01.2018
03:44:00
докер выпускает совместимые с Ubuntu LTS версии
как только такая версия есть, вы можете смело обновляться

Evil
27.01.2018
03:44:12
и тупо какая-то утилита со старого образа не хочет не может работать с новым
нет спасибо

Alexander
27.01.2018
03:44:30
проблем с ядром нет

Admin
ERROR: S client not available

Alexander
27.01.2018
03:44:36
ну, я в реальной практике с ними не сталкивался

Evil
27.01.2018
03:44:48
lts на убунте начинается с c 3-4 ревизии

Alexander
27.01.2018
03:48:21
у убунты есть 2 типа версий - обычная и LTS, можно использовать только LTS и вообще не обновлять её на другие LTS, там лет 5 вроде поддержка, обновляться только в пределах 1 выпуска
ядра двух типов - GA и HWE, HWE - это ядра от более новых версий, бэкпорты своего рода, можно юзать GA
ну и вот Ubuntu LTS с GA-ядрами и докер из их репозитория, обновляться можно не сразу, а через, ну, несколько месяцев после релиза новой версии докера
тогда будет довольно стабильно
вот, а все остальные пакеты они будут в образах, собираться и тестироваться на CI

Evil
27.01.2018
03:50:44

Alexander
27.01.2018
03:51:13
так да, повышает, за счёт переноса пакетов с сервера внутрь образа
на сервер ставится только докер и всё
ну, мб системы мониторинга ещё и прочее такое

Evil
27.01.2018
03:51:45
ядро и фс все равно хостовая

Alexander
27.01.2018
03:51:50
да
но часто проблема не с ними, а с тем, кто кто-то накосячил с апгрейд скриптом какого-нибудь пакета

Google

Evil
27.01.2018
03:52:35
ну обновляем убунту с lts на lts процентов 70% что докер крякнет после такого маневра

Alexander
27.01.2018
03:53:28
перед обновлением Ubuntu с LTS на LTS необходимо обновить Docker и убедиться, что новая версия Docker’а поддерживает новую LTS
если да, то ничего не крякнется
просто тормозим контейнеры и обновляем
и всё ок

Evil
27.01.2018
03:54:14
как же его обновишь если в текущей репе он вот такой версии, новые будут в новом lts

Alexander
27.01.2018
03:54:45
обновиться до последней доступной версии для данной LTS
в репозитории Docker’а
(не в репозитории Ubuntu)

Evil
27.01.2018
03:56:27
да, а какая разница, если там ядро и фс ломает что-то в новой

Alexander
27.01.2018
03:57:02
таких ситуаций не было, там ничего не ломается

Evil
27.01.2018
03:57:11
сначала получается надо обновится до новой lts и возможно оно проапдейтит докер, возможно он даже запуститься, но тут 50 на 50

Alexander
27.01.2018
03:57:43
смотри, всё просто
у Ubuntu поддерживаются 2 LTS версии
текущая и старая LTS
и новый докер будет работать и под ту, и под другую версию
он будет в обеих репозиториях