Оптимизация Django. 1 - Django + Docker
Вставка
- Опубліковано 4 чер 2024
- 00:00 Про Docker и зачем он нужен
04:29 Установка и настройка Docker
06:38 Скачиваем Git и PyCharm
07:26 создаем репозиторий в GitHub
10:36 создание Django проекта в Docker
13:02 Создаем базовый image в Dockerfile
19:19 Пишем docker-compose файл
25:35 docker-compose build
28:18 django-admin startproject через docker-compose
29:22 docker-compose up
30:36 git commit / push через PyCharm
31:30 Подключаем Postgres к приложению Django через Docker
40:24 Подключаем второй интерпретатор к PyCharm
42:18 Устанавливаем psycopg2 и postgresql-client в Docker
44:57 Применяем manage.py migrate в docker-compose
46:10 manage.py createsuperuser в docker-compose
47:27 Docker Desktop
49:00 Резюме этого видео
Если позволите, то небольшой совет. В докер-файле копировать код, который вы пишите, а значит он меняется, лучше перед самым запуском питона. Иначе у вас при каждом изменении кода, во время билда контейнера, будут пакеты качаться и ставиться заново. А если их поставить выше копирования кода, то слой с пакетами будет использоваться из предыдущего билда и деплой новой версии будет быстрее. Это, кстати, тоже касается вопроса оптимизации, правда деплоя, а не работы приложения.
Привет! Если тебе не сложно можешь подробнее описать что и куда надо переставить в докерфайле, чтобы слои не переписывать?
@@user-dz6et7mf6l он имеет ввиду после COPY requirements.txt /temp/requirements.txt (строка 3) сразу устанавливать зависимости(строка 8, 10, 12), потому что каждый раз когда меняется код, докер это автоматом понимает по хеш суммам и начинает выполнение с строки 4, так как именно там мы копируем все исходники проекта, соответственно начинается выполнение строки 8 и т.д.
@@shakhzod_me именно. Т.е. строку с COPY service .... передвинуть максимально вниз по логике действий, т.к. строки выполняются по порядку и всё что может не выполняться, а быть взято из кэша, будет взято из кэша. А самое долгое по времени выполнения при последующих деплоях, это строка с pip install ... Её лучше ставить выше Copy service, но ниже Copy requairements ..... И ничего выше них не. Должно меняться при билде новых версий, тогда пакеты не будут качаться каждый раз
@@rocky-04 что за ошибка? На каком шаге возникает?
@@rocky-04 попробуйте собрать на базовом образе не alpine. На нем у меня при установке дополнительных пакетов бывали случаи, когда не стартовал питон. Например, python3.9-slim.
Самый лучший урок по Докер+Джанго на Ютубе(включая англоговорящий) для новичков.
Спасибо! Курс как и все предидущие - супер!
Как я ждал твои видео)))очень понятно объясняешь, спасибо за твой труд
Шикарное видео , альтернативы на просторах не встречал ! Спасибо вам большое за такие ценные знания
Спасибо Сеньору Помидору, это лучшее видео по Докеру
Спасибо огромное за контент. Пожалуйста продолжай развивать канал.
Классный свет и новая камера, прям летняя атмосфера, смотреть еще приятнее :)!
Классный урок по запуску Django в Docker, всё получилось!
блин, какой ты классный, хорошо объясняешь, прям услада для ушей👍
От души! Посмотрел твои предыдущие курсы по джанго. Формат, подача идеальны!
Спасибо
Большое Вам спасибо за курс!
Качество контента как всегда на уровне
Спасибо большое, это очень полезный ролик!
Очень круто! Огромное спасибо!
Это то, что мне так долго не хватало. Большое тебе спасибо, обнял.
🤗
Пушка будет, то что надо) Ждем :)
Огромные слова благодарности за ту работу, которую вы проделали!!!
Вы один из тех спикеров, благодаря кому я работаю с технологиями и фреймворками о которых вы рассказываете.
Если есть возможность, (очень актуально....) можете рассказать как использовать интерпритатор python при разработке через docker-compose в IDE PyCharm Professional.
Еще раз благодарю!!!!
Контейнеры, которые пришлось удалять - это имеджы от предыдущих билдов. Каждый новый билд делает новый имедж и из него запускает контейнеры, а старые имеджи остаются висеть. Чистится через docker prune. Ключ --rm удаляет контейнеры после остановки, но не собранные имеджи
Спасибо за урок!
свежий видосик = свежий лайк
Топчик, спасибо за урок
Люто плюсую)
Боже храни Сеньора Помидора! =) Великолепный контент!
🙏
И снова оч спасибо!
Спасибо, то что искал
Улёт ⚡
Огромное спасибо!
Классная штука docker
ОООО крутяк💪
Вот сеньор и подвёз годного контента
Случайно наткнулся на этот канал, когда возникла нужда добавить Celery в Django. Ведущий очень понравился. Такое чувство, что смотрю Варламова, только гораздо улучшенную его версию: спокойная и грамотная речь. Особенно мне нравится как в режиме онлайн он кодит, мне как новичку становится гораздо легче, так как вижу как сеньор это делает подглядывая на второй экран, значит и я не должен помнить синтаксис всего наизусть
Спасибо! 😁 второй экран это я докер конфигурацию плохо помню, ну и примеры кода смотрю, которые буду делать. Синтаксис питона я конечно помню )
В поддержку.
Спасибо тебе!
Отдельное спасибо за DB_HOST=database. Никак не удавалось сбридждить приложение и postgres, кроме как через наружний ip. Ни localhost, ни четыре нуля, ни ip контейнера не работали. А тут завелось без прокидвания порта бд наружу!
спасибо!👏👍
docker-compose exec web-app python manage-py migrate - Миграции можно и так накатить. (тире на точку поменяйте, Туб ссылки удаляет)
Автору низкий поклон 🙏
Во-первых, спасибо за уроки!
Во-вторых, подскажи пожалуйста название утилиты, которая следит за использованием оперативной памяти?
Спасибо большое! Я не верил что мне, новичку, получиться по этому видео развернуть свой проект на докер. Конечно, пришлось по пути исправлять кучу ошибок и делать по интуиции в некоторых местах, но всё равно получилось! Осталось разобраться с Celery...
Спасибо за отзыв! Такая у нас специфика работы, исправлять кучу ошибок и иногда делать по интуиции)
спасибо!
Вот начал 3 курс. Вспоминаю 1 запуск 1го видео "Блин, ааааааа, как же нудно он говорит!". Я тогда не осознавал и только на втором курсе понял, что это мой мозг подвергается правильной нагрузке. Это реальная учеба, а не видео из разряда "Йоу йоу йоу и сегодня мы изучим машинное обучение за 13 секунд!". На втором курсе я настолько преисполнился, что материал начал восприниматься не "нудно", а даже слишком быстро "эйэй, подожди, не успеваю!". Не устану писать как и все благодарности за курс, полностью на русском, получить бесплатно столько материала , который подается в формате "Ученик-репетитор", лучший !:)
Спасибо за такой отзыв. Никогда не задумавшая что может быть такое разное восприятие и как оно меняется . Очень интересно было почитать !
Спасибо
Сеньор, подскажи пожалуйста, а БД обязательно в контейнер заворачивать? что если у меня на хосте уже есть БД и я хочу использовать ее
Не обязательно. Можно использовать локальную.
У тех у кого уже есть локально postgres, то может возникнуть ошибка c портами(ведь 5432 уже занят). Для решение этой проблемы в приложение database добавьте ports: - "5433:5432"
Надо при этом где-то в compose переменных или еще где-то ставить 5433?
@@tweak1207 нет только в docker-compose пропиши. Потом по новому docker-compose up запускаешь, еще заново миграции не забудь сделать.
Спасибо тебе большое )
Спасибо огромное!
@@russul2700 а разве не нужно в сеттингсах самой джанги в настройках БД прописать порт 5433?
правда мне ничего не помогало, пришлось удалить все контейнеры, снести с компа локальный постгрес, и только после этого все сработало.
Вопрос: Обязательна ли команда "RUN apk add postgresql-client build-base postgresql-dev" в "Dockerfile", если у нас по сути есть описание конфигураций внутри "docker-compose.yml?
Вот проверьте и напишите нам
@Senior Pomidor Developer, добрый день. У меня все завелось, спасибо большое за это видео. Однако, после docker-compose down и последующего docker-compose up пропадают все юзеры, которых я создал в предыдущую сессию включая суперюзера. ЧЯДНТ? Нужно колдовать с volume?
Эээ. Не помню. Надо спросить у нас в чате, ссылка в профиле
@@SeniorPomidorDeveloper Понял. Я думал, команда down остонавливает контейнер, а она его вообще удаляет. Неудивительно, что данные стираются 🙂
отличное видео, но на 40:28 можно было просто нажать Configure Python interpreter в углу, сам пайчарм подсказывал)
Добрый день!
Подскажите, пожалуйста, название программы для мониторинга оперативной памяти для Виндоус?
Добрый день! Для windows , к сожалению, не знаю
какое приложение используете для мониторинга памяти?
iStat Menus
top
Здравствуйте. Подскажите, пожалуйста, что у вас за папка temp? это новая папка для проекта?
Эээ. Блин, уже не помню. Обычно temp это значит temporary, то есть временные файлы , которые нужны для какой -то операции, а пооом можно удалить
Лишние контейнеры создаются из-за того что вы используете команду в докере команду run, а не start.
Цитата:
START will start any stopped containers. This includes freshly created containers.
RUN is a combination of create and start. It creates the container and starts it.
У меня не создаются
Ждем следующий урок! Можно было бы по 2 в день сразу)
да их не так много вцелом) быстро тогда закончатся )
@@SeniorPomidorDeveloper а сколько всего уроков?
10
@@SeniorPomidorDeveloper может это звучит нагло, но с твоим умением объяснять и подавать материал хотелось бы увидеть больше контента))
Больше за деньги)
👍
Есть ли существенная разница между alpine или debian/oracle? Вместо PostgreSQL хочу MySQL взять, так как с ней больше знаком, а альпайн там нет в доступных тэгах
Можно любую SQL базу брать, у которой есть драйвер для Джанго. На ORM все выглядит одинаково, никакой разницы не почувствуете (кроме некоторых продвинутых функций, которые крайне редко используются)
Можно debían конечно. Но есть небольшой риск , что если что-то делать не так , как в курсе , то где-то может быть другой результат или какие-то новые проблемы, которые нужно будет решить самостоятельно
@@SeniorPomidorDeveloper понял, попробую значит debian, а если будут ошибки и придется искать решения, то это тоже часть учебного процесса)
Точно 😁
Добрый день! У меня появился вопрос: нужно ли делать миграции, когда кто-то попытается развернуть мой докер проект? Т.е. сейчас, чтобы его развернуть я использую git clone, потом docker-compose build и docker-compose up, но вспомнил про миграции и задался вопросом, что я вроде никак их не трогаю, а они есть. Докер сам подхватывает, когда подключаешь к нему базу данных?
Добрый день. Так как в докере база чистая, то нужно делать migrate конечно. Или второй вариант, давать дамп базы, чтобы его развернули . А создавать миграции надо заранее , и класть в гит
@@SeniorPomidorDeveloper Я просто вот докеризировал уже готовый, другой проект, попытался его сам развернуть, клонируя сначала репозиторий из гита, а потом просто сбилдил (docker-compose build) его и поднял (docker-compose up) и при этом вся база данных не была пустой. Я немного не понял, почему она оказалось не пустой и поэтому обратился к Вам. Это я что-то не то сделал, или просто это из-за того, что миграции уже были в Гите?
Данные могут создаваться в миграциях, это распространенная практика. Нужно почитать их код и там будет это заметно. Также и сама база могла быть в репозитории , к примеру SQLite это дефолтная база для Джанго и она существует в виде файла.
@@SeniorPomidorDeveloper точно, у меня же sqlite стоял, так что наверное да, бд подхватилась из-за этого. Спасибо!
Ссылка на гит будет ? Или чтобы повторить нужно перепечатывать?
Есть github.com/chepe4pi/service_app
Спасибо огромное.
p.s. эти images none создаются и без джанги ( использовала express from js). Руки не доходят разобраться, почему они плодятся.
Добрый день! подскажите, пожалуйста, с какого видео начать изучать джанго? У вас их так много. Для самого начинающего.
Добрый день! Ну старые курсы , конкретно для начинающих, будут проще. Это которые с белой и синей обложкой.
Но там проблема в том, что устарели некоторые библиотеки и кое-что работать не будет (
Если начинать с этого то все будет работать отлично.
Наверно с этого начинайте , а дальше лучше вернитесь старые. Может у вас получится сделать их на основе этого проекта из нового курса
Советую сначала канал selfedu (джанго+рест), потом помидора можно посмотреть, т.к. у него меньше объяснений и в целом более продвинутая инфа
Возник вопрос, а где лежит база postgres? Она же не за бэндмаучена, это значит что контейнер остановится и все данные слетят. Или я что то пропустил. Можно пояснить? Есть bind mount для Django только)
Не слетит если контейнер остановить или перезапустить. Курс же записан , каким-то образом. По хорошему, надо было тоже сделать mount, но курс не по докеру и я не придал значение. Тему обсуждали в группе в телеграмме. Можно там почитать
Привет SPD, а не подскажите почему папка из созданного приложения в докере может не отображаться в пайчарме?
Хм. Видимо по тому что она осталась в контейнере .
Спасибо за уроки. Можно ещё урок или подсказку как задеплоить докер контейнер и как его запускать правильно? Наверное нужно что вроде связки с nginx?
Докер на сервере это отдельная тема для еще одного большого видео.
На 26 минуте при переходе в директорию которая в PyCharm (и что значит куда СКАЧАЛИ git проект) командой в терминале "~ cd PycharmProjects/service_app" у вас высвечивается директория "service_app git:(main) x". Почему так? Или это фишка Mac? (У меня Ubuntu)
Да, я думаю что это на маке только так. Он обнаруживает git и подсвечивает ветку, в которой находимся . Думаю что для линукса есть плагины тоже
@@SeniorPomidorDeveloper Спасибо за ответ! Ваш труд неоценим!
установи zsh и + тему, которая поддерживают такую фичу.
Не очень понял вот что - зачем в докер файле команда копирования папки service внутрь контейнера если в композе все равно монтируем на это место готовую внешнюю папку?
Хороший вопрос! Это был первоначальный план , думаю что и без этого должно работать , если только монтировать
Как установить docker desktop на linux mint? а так же при docker-compose build вызодит ошибка
DockerException(
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', PermissionError(13, 'Permission denied'))
Напишите в группу в телеграмме, ссылка в профиле. может там помогут , у кого-то была похожая проблема .
Я бы всё таки советовал использовать дебиан образ для Докерфайла, понятно что он ест больше памяти, но в то же время он и работает намного быстрее, это сейчас у вас просто базовая Джанго, а если в ней будет 20+ зависимостей, то и устанавливаться они будут по 3-5 минут, это если вы alpine образ используете, а с дебиан образом всё устанавливается намного быстрее и вроде как асинхронно, то есть не каждый образ по порядку, а несколько одновременно.
Ок. Интересное замечание!
Возник вопрос, я как обладатель Windows , вижу что Docker делался как я понимаю не под нее и все функции автоматом есть в MacOs и Linux , а тут придется поводится с WSL. Просто теже Resource , он предлагает менять на прямую через файл конфига, мне просто интересно это норма и у всех так на Винде или я особенный и что-то не так установил? ;) (You can configure limits on the memory, CPU, and swap size allocated to WSL 2 in a .wslconfig file.)
Спросите в группе в телеграмме, ссылка в профиле
@@SeniorPomidorDeveloper точно, туплю)
А когда вы создаёте новый интерпретатор для подсветки синтаксиса и потом устанавливаете зависимости, они глобально ставятся или в виртуальное окружение?
Ну если я создаю новый интерпретатор, то зависимости только для него и ставятся. Но же новый, а глобальный у меня старый. Глобальный мы не можем создать , только скачать и установить можем .
@@SeniorPomidorDeveloper Просто, после того как указали новый интерпретатор, вы ставили из файла рекомендаций джангу и куда он поставился? Ведь source venv/bin/activate вы не набирали.
Это просто PyCharm так работает что создает новый virtualenv и сразу его активирует . Добавлю субтитр , действительно, это не очевидно .
@@SeniorPomidorDeveloper спасибо. А то я сейчас усиленно изучаю Django на курсах яндекса))) . Плюс стараюсь смотреть все, что можно найти на данную тему. Запомнить, конечно, всё это - та ещё задача. У нас Докер тоже будет. Лучше заранее подготовлюсь, чтобы потом не плавать)))
С докером очень хорошо работает vscode, есть плагин и можно работать прямо из контейнера. Посмотрите )
Я правильно онял, если мы смонтировали Volume с локального компа в докер, то все изменеия и манипуляции, такие GET, POST, DELEТE, которые были применены в докере так же сохраняться и на локальном компе? Или все что было в докере, там и останеться, и при новлм запуске докер-композ нужно снова повторять эти действия?
Ну это все сохраняется в базе , которая в контейнере в докере и если их не удалять то все останется
@@SeniorPomidorDeveloper благодарю Вас за ответ. Извините за наглость. Обещаю, что это последний вопрос:)А есть возможность как то эти изменения сохранить на локальном компьютере?
Для этого можно запустить локальную базу и пробросить подключение к ней в докер . Иногда сами data файлы Postgres монтируют в докер. Не уверен как лучше сделать. Может достаточно просто дамп базы делать и локально его применять. Зависит от ваших целей
А зачем писать в docker-compose 'sh -c "python... ' разве по умолчанию не применяется bash линукса?
Просто скопипастил )
Привет, спасибо за классный курс, у меня выходить ошибка такого рода - Permission denied: '/service/manage.py'
При создании джанго проекта в 28:00 минуте, что делать?
думаю сто это из-за того что мы вручную создали папку service_app > service и теперь пользователь докера не может создавать файл или папки
Но не понимаю как изменить права доступа.
или это из-за другого кто знает????
Вроде не было такой проблемы. Попробуйте все заново создать по видео, если не получится то можно спросить в телеграмм группе, ссылка в шапке профиля
@@SeniorPomidorDeveloper же 2 раз делал, я там даже не могу папку создать такой командой - docker compose run --rm web-app sh -c "mkdir -p newfilder"
Пишет что Отказано в доступе.
Такое ощущение что сам докер не имеет доступа, к ресурсам которые он создает. Может его надо переустановить?
Или может надо проставить права для той папки, которую мы монтируем в докер, скорее похоже на это.
@@SeniorPomidorDeveloper Попробую пере установить докер
Здраствуйте. На версии Django 4 будет работать?
Да будет конечно , может какие-то минимальные корректировки нужны будут, может нет. Там мало времени прошло, наверное ничего не изменилось
Привет, возникает такая ошибка при команде docker-compose build "line 2: did not find expected key"
О чём это говорит?
Не знаю.. что-то на второй строке конфига. Может ошибка
Что вы используете в качестве терминала? Он у вас разноцветный.
Да какой-то маковый стандартный
На Мак Ось недавно появился крутой терминал Warp, советую заценить
Hello,
При запуске docker-compose up я получаю вот такую ошибку -
FATAL: password authentication failed for user "dbuser"
DETAIL: Role "dbuser" does not exist.
Кто-нибудь сталкивался? Спасибо
Эти права должны быть прописаны в докер имедж. Может ни к тому простгресу подключается ?
Сверьте код с репозиторием github.com/chepe4pi/service_app
Докер прожорливый только на dev сервере или на проде тоже потребуется не меньше 8 гигов оперативки, чтобы запустить такую сборку?
Не пробовал запускать с малым количеством оперативки , наверное как-то работать будет.
мне тоже интересно, получается под прод придется брать vps c 16 гигами, для маленького интернет-магазина как-то крутовато
@@avstudia2611 я тоже так думаю
@@SeniorPomidorDeveloper а конкретней можете ответить? сколько оперативки надо на проде? и сколько оперативки вы используете на своих прод серверах? а то как-то грустно от мысли что надо 16 гигов для хоста))
В этом курсе я использую докер , по тому что без него было бы очень сложно показать celery , redis , Postgres и всю их связку. На продакшене их обычно разносят на разные сервера и каждому дают оперативки сколько нужно. Для маленького интернет магазина это вообще все не нужно, он нормально работает без докеров и селери, для такого кейса скорее подойдет курс «Джанго сервер на Linux».
В любом случае, этот проект наверное и на двух гигах запустится, непонятно только какие нагрузки выдержит. Вообще это хорошая идея, записать видео про установку его на Linux сервере , я попробую что-то придумать такое .
Expose порт не открывает. Вот выдержка из самой документации: "Exposing ports is a way of documenting which ports are used, but does not actually map or open any ports. Exposing ports is optional".
После установки докера всё время: Docker Desktop starting... (всё время грузится, но не прогружается)
Установил на виндоус.
Советы со стаковерфло не помогли... или я их неверно применил.
У кого-то из учеников была подобная сложность?
Не знаю, никто пока про такое не писал . Можно спросить в группе в Телеграмме, ссылка в профиле .
Я долго мучалась с такой же проблемой, помогло только увеличение оперативки, сразу все заработало
При запуске docker-compose(команда docker-compose run --rm web-app sh -c "django-admin startproject service .") я получал ошибку - sh: django-admin: not found, поэтому я заменил команду на следующую - docker-compose run --rm web-app sh -c "python -m django startproject service ." Возможно это из-за того, что на windows.
И я все равно не до конца понимаю как эта команда работает. Почему я создаю джанго проект в контейнере, а появляется он у меня локально, как это возможно?О_о
Видимо по тому что директория из контейнера подмонтирована локально.
скинь плиз ссылку/названия монитора ресурсов
istat menus
выскакивает ошибка постоянно. уже все перепробовал could not translate host name "database" to address что можно сделать?
Зайдите в телеграмм канал , ссылка в профиле. Вроде обсуждали такое
http: invalid Host header кто-то сталкивался с такой ошибкой при docker-compose build? Правда делаю не из докер-десктоп а из обычного (убунту 22.04)
Должно быть также на убунту . Можно в группе спросить. Ссылка в профиле
@@SeniorPomidorDeveloper спасибо, попробую там спросить)
пишет вот такая ошибка: [5/7] RUN apk add postgresql-client build-base postgresql-dev:
#9 0.432 /bin/sh: 1: apk: not found
что делать?
Проверить что конфигурация докера написана без ошибок . Можно с моим кодом сверить github.com/chepe4pi/service_app/tree/day-9
А ты работаешь с FastAPI?
На работе нет. В вообще с разными штуками люблю экспериментировать
failed to solve: process "/bin/sh -c pip install -r temp/req.txt" did not complete successfully: exit code: 1
Почему такая ошибка возникает?
Ошибка бала из за моей не внимательностью
берите кому, если не работает
FROM python:3.10.7
RUN mkdir /app
WORKDIR /app
COPY . /app/
COPY req.txt /temp/
RUN pip install --upgrade pip
RUN pip install -r /temp/req.txt
requirements плагина сейчас нет в pycharm плагинах(
Может это уже встроенный функционал. В любом случае, установить не сложно
А как так выделить несколько файлов в пайчарме😮??
Через shift ?
А почему нельзя создавать django приложение локально? Какие подводные?
Можно конечно. Во всех прошлых курсах так делал
Добрый день, нашел способ как поставить миграции без команды
docker-compose run --rm web-app sh -c "python manage py migrate"
т.е. без создания лишнего образа.
Если добавить эту команду в docker-compose.yml
web-app:
build: .
command: bash -c
"python manage py migrate &&
python manage py runserver 0 0 0 0 : 8000"
миграции будут выполнены, если они нужны.
Насколько этот способ имеет право на жизнь?
ps. в командах надо добавить точки, а то боты удаляют мой комент:)
Да, почему бы и нет. Хороший способ. Это актуально именно для локальный разработки. Для продакшн мы в принципе не используем runserver
Когда запускаю Докер Билд выдает такую ошибку 'docker-compose' process finish with exit code 15
Что это может быть, хоть где его искать?
Не понятно (
Вот с этой ошибкой не могу справиться
File "/service/./manage.py", line 22, in
main()
File "/service/./manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 395, in execute
django.setup()
File "/usr/local/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python3.9/site-packages/django/apps/registry.py", line 114, in populate
app_config.import_models()
File "/usr/local/lib/python3.9/site-packages/django/apps/config.py", line 301, in import_models
self.models_module = import_module(models_module_name)
File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/service/services/models.py", line 11, in
class Plan(models.Model):
File "/service/services/models.py", line 14, in Plan
('student', 'Student')
И что хочет, чтоб Я сделал.
Как узнать,
Там нижняя часть трейса ошибки не влезла. В ней ответ
Traceback (most recent call last):
File "/service/./manage.py", line 22, in
main()
File "/service/./manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 395, in execute
django.setup()
File "/usr/local/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python3.9/site-packages/django/apps/registry.py", line 114, in populate
app_config.import_models()
File "/usr/local/lib/python3.9/site-packages/django/apps/config.py", line 301, in import_models
self.models_module = import_module(models_module_name)
File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 850, in exec_module
File "", line 228, in _call_with_frames_removed
File "/service/services/models.py", line 11, in
class Plan(models.Model):
File "/service/services/models.py", line 14, in Plan
('student', 'Student')
TypeError: 'tuple' object is not callable
NativeCommandExitException: Program "docker-compose.exe" ended with non-zero exit code: 1.
Кортеж не может быть вызван!
Я и не писал кортежей вроде бы.
Жаль тут в коментах нельзя вставлять скриншоты!
Не знаю у меня это ошибка или что , но дальше не идет!!!
Как обновит pip? не могу поставить пакет Pillow
Pip можно обновить через вашу ОС
Но для установки pillow этого не нужно
@@SeniorPomidorDeveloper а как поставить правильно pillow, он у меня ругается что нужно обновить pip. А pip не обновляется
Это просто warring, можно не обращать внимание, ошибка в другом
Не совсем в тему. Мне вот просто интересно, вы, как опытный разработчик, помните все эти команды для докерфайл или докер-композ? Или у вас просто шпаргалка, откуда их можно взять и быстро развернуть приложение?
Какие-то помню , но в основном из шпаргалки смотрел . На работе мы практически не используем докер, по этому плохо запоминаются .
Все что касается Джанго и следующих видео , почти все по памяти писал, так как часто использую
Народ, я посмотрел "мини-курс о django". Я могу смотреть этот курс, или лучше сначала пройти "бекенд на django"?
Лучше этот наверное сначала. Потом если что-то не заработает в курсе "бекенд на django" то можно просто взять из этого курса настройку в docker и дальше "бекенд на django" проходить на основе докера
@@SeniorPomidorDeveloper Спасибо!!!
Сделайте отдельное видео куда размещать бизнес логику, чтобы не засорять view.
В файл business_logic.py 😁
Я серьезно. Именно так и делаем .
@@SeniorPomidorDeveloper есть такое поняте как Service object, в django есть такое?
@@SeniorPomidorDeveloper в каком видео вы показываетет как это делается?
Уже не помню, может и не показываю. Там особо и нечего показывать. Есть логика - создаем для нее функцию или класс
+
Вот смотришь курсы, уроки на просторах ютуба и диву даёшься сколько нагенерили начал. У гугла целая страна, наверное, выделена под хранение как установить докер, как открыть командную строку итд. :)
А куда без этого...
То, что докер кэширует дофига свободной памяти- это особенность его работы на Мак ОС, на линуксе например он практически ничего не жрёт.
Это в конфиге docker можно проставить . Если у мака то в конфиге docker desktop, Хоть 1гб , но будет ли работать неизвестно.
@@SeniorPomidorDeveloper я думаю смысла особого нет - он у меня на маке с 8гб памяти забивает всё под 0, если по диспетчеру задач смотреть, но на производительности компьютера это никак не сказывается.
Да, он просто берет все , что ему дают )
Кто-то: и так да это сложно но мы начнем изучать докер, я создам базовый 4х часовой курс для введения и вы все поймёте
Сеньор: (между делом понятно объясняет, так что можно с этим и работать, но естественно не останавливаться)
😅
😁
34