Для пользователей Windows: Через SQL Shell (psql) (Утилита для работы с BD ставится вместе с PostgreSQL) создаете юзера и базу данных, юзеру обязательно задаете пароль. -> Создаем юзера: postgres=# CREATE USER books_user WITH PASSWORD ‘password’; Создаем БД: postgres=# CREATE DATABASE books_db WITH OWNER books_user; В файле settings DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'books_db', 'USER': 'books_user', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '', } }
Отличный урок! За полчаса весь мини-курс повторил, ура). В приниципе после миникурса я уже без подсказок справился с созданием проекта, приложения, подключением постгреса и выводом Book в админку, а вот сериализатор и вью делал с подсказками, но не глядя видео, а на слух. Отличный результат, отличный преподаватель). Найти бы еще что-то такое же классное по vue и react...
Классное видео, хорошая подача материала. Django Rest Framework в обще в новинку. Интересно как с ним работать. Надо пересмотреть "Прошлый курс". Жду следующего урока.
на 2:27 минуте интерпретатор подсвечивает синтаксис objects class BookViewSet(ModelViewSet): queryset = Book.objects.all() serializer_class = BookSerializer Чтобы избавиться от этого необходимо добавить атрибут objects = models.Manager() в вашу модель class Book(models.Model): name = models.CharField(max_length=250) price = models.DecimalField(max_digits=7, decimal_places=2) objects = models.Manager()
Ошибку "Creating a ModelSerializer without either the 'fields' attribute or the 'exclude' attribute has been deprecated since 3.3.0, and is now disallowed. Add an explicit fields = 'all' to the BooksSerializer serializer." можно исправить, добавив атрибут fields = '__all__' в класс BooksSerializer. Вот как может выглядеть обновленный код BooksSerializer: from rest_framework import serializers from .models import Book class BooksSerializer(serializers.ModelSerializer): class Meta: model = Book fields = '__all__'
Я человек простой, открыл видео - ставлю лайк!!! Т.к. на этом канале мне даже не обязательно досматривать до конца, чтобы знать, что контент полезный))) С возвращением!!!! Пока вы отсутствовали, весь прошлый месяц разбирался с Джанго рест)))
может кто подскажет, почему команды, которые я ввожу в терминале pycharm (как в видео) у меня выполняются в отдельном окне питон-терминала, которое сразу же пропадает и не понятно, что за ошибка произошла?
version: '3.1' services: db_auth: container_name: db_auth ports: - "5432:5432" environment: - POSTGRES_DB=books_user - POSTGRES_PASSWORD=root - POSTGRES_USER=admin image: postgres:15.5-alpine3.18 для docker-compose.yaml примерно, просто мало ли может поможет, как и мне.
Привет. Пока все классно. Есть пару "но" (особенно, тем кто сидит под Линуксом): 1) Макосовские комманды createuser и createdb на Линуксе работать не будуть скорее всего (как бы тупо и очевидно это не звучало). Гуглим решение. 2) Если по каким-то причинам psycopg2 не устанавливается (бросает ошибку по типу " Error: pg_config executable not found." - скорее всего не установлен пакет postgres-devel (туда входит libpq-dev если Debian/Ubuntu, или libpq-devel если Centos/Fedora/Cygwin/Babun.). Можно попробовать установить, но, если по каким-то причинам установить не получается, верное решение - через pip устанавливаем psycopg2-binary (а вообще лучше сразу ставить его).
1) Почему вы решили что это маковские команды? 2) да , к сожалению, на разных платформах могут быть разные сложности с зависимостями . Но было влом для бесплатного курса снимать установку на каждой платформе . Курс вцелом не об этом . А меньше всего заморочек тут будет на Ubuntu/Debian . Ну или на маке , тоже не сложно
@@SeniorPomidorDeveloper Я выполнял шаги точь-в-точь, но у меня эти команды не сработали. Создалось впечатление, что это макосовские команды. Сейчас погулил - такая команда есть только она выполняеться через "терминал" Postgres - sudo -u postgres createuser . Может я чего не понял или проглядел.
Линуксовые команды , думаю что дистрибутив мака позаимствовал и может немного видоизменил . Будем считать что это самостоятельное задание . Дальше расхождений почти не должно быть . Если только с 4 версией Джанго , какие-то были мелочи
`смена пароля` psql -U postgres ALTER USER books_user WITH PASSWORD 'books_user'; `гранты базе данных` GRANT ALL PRIVILEGES ON DATABASE "books_db" to books_user; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO books_user;
Если у вас почему то не устанавливается psycopg2 то просто выберите psycopg2-binary. Ничего по факту не меняется и всё работает по крайнее мере в рамках курса
Топовые видео!) смотрел прошлый курс и, наконец, смог вернуться к моему продолжению изучения бэка, а то после изучения фронта уже даже успел соскучиться :D с удовольствием просмотрю в скором времени весь ваш курс, спасибо Вам большое за такой ценный материал )
по какой-то причине компилятор пишет, что django-admin не распознается. И причем не важно, устанавливался фреймворк через терминал или интерпритатор. может я чего-то в этой жизни не понимаю...
Не очень понял что значит «Django-admin не распознается» Файл не найден? Можно попробовать написать полный путь до файла команды . Или можно спросить в Тг чате, ссылка в профиле
Так я все показываю на бесплатной версии. Там нельзя подключать Джанго , по этому все runserver и прочее делаю через консоль . В PyCharm мы не подключаем Postgres , только в конфигурации Джанго его прописываем . Можете зайти в нашу группу в телеграмме, ссылка в профиле и прислать туда скриншот с проблемой и описание. Может кто-нибудь поможет
Пока что выглядит что работа на джанго заключается в том, чтобы экспортировать что-то куда-то, что-то куда-то вписывать и запускать сервер через терминал. А для чего тогда я учил пайтон, я не пынямаю :/
На данный момент стоит ли проходить данный курс, или же лучше начать с курса у которого оранжевая обложка так как он более новый? Буду благодарен за ответ
Если особо не работали с Джанго и drf то лучше с этого начать. Какие-то вещи могут работать по-другому и с этим придется разбираться. Обычно в комментариях люди пишут про такое. Но этот курс дает базу , а оранжевый более сложный , где базу уже надо знать, хотя там она тоже будет, но вкратце
Можно попросить ссылку на туториал по установке и настройке postgres? Три дня уже не могу разобраться, почему у меня не работают команды createuser и тд, уже руки опускаются
Эти команды должны были появится вместе с установкой Postgres , но это зависит от того откуда вы ее устанавливаете , даже от ОС. По этому нужно найти другие способы подключится к СУБД Postgres и создать там пользователя . В интернете должно быть много решений. Я не стал этот момент разбирать по тому что у меня mac и наверное мой способ не подойдёт большинству пользователей ..
Сначала я установил brew, как-то по инструкции с официального сайта. Потом я написал brew install postgres и на мой мак установилась эта СУБД и вместе с ней вот эти команды . Если так не выйдет то проще загуглите типа «как создать пользователя в Postgres”
Совет из будущего, у пользвателся book_user ставьте легкий пароль, а то может выдывать port 5432 failed: fe_sendauth: no password supplied и будете как я сидеть тупить пару часов
Привет! А как ты сделал так, что у тебя команды "create user ..." и "createdb ..." работают? у меня не пашет так ) Получается только через: psql postgres postgres create user ... и т.д.
Не могу создать пользователя БД. Появляется ошибка createuser: error: could not connect to database template1: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
Спасибо вам за труд! Видео очень полезное, все по делу без лишнего маргарина. Но вот в конце видео, когда вы получили в ответ JSON с 2 книгами, id начинаеться с 4, а почему не с 1. Для меня это неочевидная ситуация. Можете пояснить?
Может я забыл сказать в видео.. Я когда готовился к видео уже создавал какие-то книги и потом удалял. Тогда отсчет Id продолжается с того места, на котором остановился, он не обнуляется.
Подскажите, случайно создал модель с максимальной длиной price в 5 цифр вместо 7. При создании экземпляров книг через shell создается только цена до 999.99. В коде поменял на длину 7 цифр, но ошибка выскакивает все та же: django.db.utils.DataError: ОШИБКА: переполнение поля numeric DETAIL: Поле с точностью 5, порядком 2 должно округляться до абсолютного значения меньше чем 10^3. Почему не могу поменять допустимую величину цены и как это сделать? И почему проходит добавление цены в кавычках?
Спасибо, хорошие уроки! К Django долгое время и до сих пор отношусь с большим предубеждением. Все кажется излишне усложненным - куча "магии" с импортами и метаклассами. Связано это с тем, что как учить и понимать ее непонятно: читать документацию - так она больше как справочник, ведь слишком объемна и нелинейна, разбирать исходники - так в них легко можно "утонуть", делать по мануалам какие-то уроки - так первая половина делает совсем азы, а вторая показывает как, не объясняя почему. Хотелось бы на реальных примерах, которые встречаются на практике, поразбирать именно это "почему", показательно поразбирать сорцы. Не проблема найти что-то в документации и прочитать это на английском, проблема узнать, что это вообще есть и как оно называется.
Пожалуйста! Да, понимаю вашу проблему с тем как учить Джанго. Я думаю что у вас сейчас есть только один вариант , начать делать на ней свой реальный проект . Если что-то не понятно то гуглить , читать доку и стек оверфлоу. Джанго может нравится или нет , но альтернативы можно сказать что нет никакой, все что есть не покрывает и трети того что умеет Джанго.
Очень грустно что такого формата видео, очееееееень редко может залететь в реки и прочее. Людям нужно посмотреть "Видосик под еду" ну или "Йоу йоу сейчас выучим пайтон за 32 секунды" , а сюда реально приходят те кто хочет выучить язык и стать программистом. Спасибо огромное за такую подробную инфу! Вас рекомендовал Клуб дедов-программистов и особенно говорил с самого начала смотреть уроки. Сейчас смотря это видео понимаю почему, материал залетает просто на ура , после того мини курса!
Првиетствую! на 22:19 вы пишите строку serializer_class = BooksSerializer 1. не пойму как она у вас сама дописалась? 2. нажатие option+enter у меня не вставляет автоматически "from store.serializers import BooksSerializer" хотя в предыдущих моментах автоматический импорт срабатывал. Что я делаю не так?
Привет, можно вопрос. Если к примеру у нас название приложения 'test' , то многие на Ютубе записывают его так же в INSTALED_APPS, а в книге советуют писать, test.apps.TestConfig. Так вот вопрос в чем разница если работает так и так?
Да сложно сказать. Я бы советовал взять какой-то курс на Udemy на английском. Там достаточно много хороших , со скидкой будет долларов 10-15. Только надо суметь ещё как-то заплатить .. Заодно и язык подучите , пригодится
Стоит ли проходить все это и повторять, если еще нечего не изучал по бэку и джанго? Мини-курс проделал ради интереса и посмотреть как работать в PyCharm.
я как Джавист, посмотрев чисто ради интереса как это делается у вас, офигел. Очень много неявных моментов, которые нужно просто знать как работают Джанговские концепции. В Жабе все очень топорно, каждый момент прописывается вручную, так что мне кажется человек который не знаком с джавовским стеком технологий поймет 80% написанного. это не + и не -, просто разный подход к разработке.
Я не знаком с джавовским стеком , но все понял. ) Если серьезно , то тут вопрос , насколько глубоко все это нужно понять. Смысл курса по сути в том, чтобы научиться делать API эндпойнты , не закапываясь в изучении реализации этого в фреймворке . Курс и так вышел более 6 часов .. многовато для контента для ютюба
Что более предпочтительнее, ViewSet или APIView? Если придерживаться принцип DRY, то ViewSet, но конкретно на практике что лучше использовать или даже скорее что чаще используется?
Могу вам точно сказать, это не имеет значения. Используйте то, что хорошо подходит для решения вашей задачи , с чем нужно будет меньше писать своего кода. Ну и то что лично вам удобно и нравится. DRY это скорее про код который мы пишем , типа нельзя копипастить , надо наследовать. Родительские классы могут быть любые .
Ну там будет создаваться приложение, на основе которого будут все следующие видео . Можно посмотреть и проматывать все объяснения . Можно не смотреть и взять код отсюда github.com/chepe4pi/books_lessons/tree/day_1
Привет! Огромное спасибо за твои курсы.. Есть вопрос, хотелось бы прояснить! Начиная с 6:40 мин в видео вводятся 2 команды: createuser books_user и createdb books_db -Obooks_user. Скажи пожалуйста.. на моем маке они не сработали. я находился в той же папке и с активным ВО. для того что бы они работали как у тебя нужно что то еще установить дополнительно? Правда приглашение к вводу команд выглядит иначе у меня > (books_venv) (base) MacBook-Pro-slow:books slow$ Я не в том режиме? чем можно заменить?
Разобрался.. Сделал через переход в терминал бд. createdb это обёртка для SQL-команды CREATE DATABASE и как я понял относится это только к Postgres Pro
Уроки хорошие наверное. К сожалению дошел до работы с PostgreSQL и все, понял что уроки никак не подходят для windows. Сел за уроки с энтузиазмом, распланировал уже пройти все за выходные, но увы и ах, руки опустились, как уже кто то тут писал. Но это не в коем случае не укор для автора, он показывает так как он в реале работает и в том софте. К сожалению мне под Windows и VSCode не получилось применить эти уроки.
У меня для вас есть хорошая новость. Включайте последний курс - Оптимизация Django. Он полностью подходит для windows. Он во многом повторяет этот курс, и добавляется еще несколько других технологий. Потом сможете к этому вернуться и те места которые тут будут уникальные можете сделать на основе кода из последнего курса.
@@SeniorPomidorDeveloper Я сейчас глянул ваши последующие курсы, и понял что с Windows тут делать нечего, полубому нужна Linux. Буду сейчас настраивать Ubuntu на втором компьютере, и уже из под Linux проходить ваши курсы. Спасибо за обратную связь.
у меня такая проблема на маке, что терминал в пай чарм и просто терминал не показывают полный путь к папке, допустим за место /users/id/Document/projects/project1/books просто показывает id@MacBook-Air-id books - то есть только последне открытую папке, что не очень удобно, как исправить?
Вроде как-то так. The window title might just show the working directory. Go in the Terminal.app menu, select Terminal -> Preferences -> Profiles -> Basic/Default -> Window, and enable the Path checkbox to show the entire path. И потом перезапустить терминал полностью, через Cmd+Q
@@SeniorPomidorDeveloper а стаокивались с такой проблемой, ввожу xcode-select --install чтобы установить икскод, а пишет не удатеся загрузить по из-за проблемы в сети
Можно попробовать установить через Apple Store или как он там называется… Или если реально проблема в сети то попробовать с другого интернета , может с мобильного , если он безлимит
6:40 "возможно такие команды есть и у вас", но если нет...смысл дальнейшего просмотра видео нет. Может стоит делать хинты с командами на винде и линуксе?
Влом было делать хинты. Можно загуглить, как создать пользователя в базе, там довольно просто. Также в последнем видео , которое называется «разворачиваем Django приложение на Linux сервере», где-то на 27:40 я показываю как это сделать в консоле базы данных.
@@SeniorPomidorDeveloper на самом деле отвечал не вам, но вышло как вышло. Гуглить и искать решение это 90 процентов работы. За минут 20 разобрался с постргре, это хорошая практика!)
а можете подсказать, пожалуйста, вы какой то плагин устанавливали, чтоб через терминал создавать БД Postgres ? Или это особенность терминала на MacOS ? Просто у меня Windows 10 и таких команд явно не поддерживает) пришлось сделать через psql shell)
блин я такой смотрю типа это гений который все знает. но на самом деле любой программист должен просто уметь быстро найти нужную инфу из тырнета. лайк за конфиг постгреса скопированный с гугла)))
@@SeniorPomidorDeveloper а в этом курсе я найду инфу как запустить свою функцию питона которая чтото делает с данными? функция невидима для пользователей и не доступна им.
ничего не понятно для новичка. Как малое дитя - здесь не буду объяснять, здесь вы сами разберётесь. Тебя и смотрят затем, чтобы понять. Может ты сам плохо в этом разбираешься, если толком не можешь объяснить, тогда не занимай время у людей. Бесполезное видео, пойду дальше искать. Только время потерял.
createuser: ошибка: подключиться к серверу через сокет "/var/run/postgresql/.s.PGSQL.5432" не удалось: ВАЖНО: роль "name" не существует второй день не могу решить проблему😩