Я могу с уверенностью сказать что это лучшее обучающее видео по веб девелопменту в русскоязычном Ютубе. Объясняете всё очень хорошо очень понятно, использование указки-карандаша - очень сильный момент, к сожалению многие почему то не используют этот приём
Спасибо за видео! Смотрю уроки по мере выхода. Небольшое дополнение про разницу в работе методов objects.filter() и objects.get() (21-23 мин). Возвращаемые ими объекты всё-таки отличаются в случае выбора одной записи из базы данных . Первый метод возвращает QuerySet (состоящий из одного экземпляра записи), а второй возвращает непосредственно экземпляр записи.
8:30 Небольшое замечание по "pk". В случае, если в модели явно задано поле, со свойством primary_key=true, то к нему можно будет обратиться по алиасу "pk". Если поля с заданным свойством нет, то Django автоматически задаёт это свойство полю "id". Поэтому pk не всегда означает id.
Посмотрел Хирьянова. Очень понравилась подача. Решил обучиться, прочитать. Прочел книгу за авторством Матиза. Интересно, но стопорно после прочтения. Многие аспекты остаются без освещения. Автор данного видео более подробно описывает ньансы, при этом понятным простым языком. Спасибо!
16:28 - что если после строчки print(wi.title) мне не дают сделать еще один отступ, а сразу начинается запуск команды и выдается ошибка, что у меня нет отступа, хотя, какие клавиши не зажимал, консоль просто никогда дает сделать отступ
Получается в видео описан способ взаимодействие с базой данных через ORM, но ничего же нам не мешает взаимодействовать с базой данной напрямую, сформировать ее поля, а потом просто подключить к проекту. Просто в чем удобство описываемого метода, не для этого же Django придумали?
Связь через ORM хороша тем, что SQL-запросы оптимизируются под любой доступный тип СУБД, который можно подключить к Django, при этом в саму программу не потребуется вносить никаких изменений.
Уроки просто супер!!! Лучшая подача в Рунете!!! Вам огромное спасибо ещё раз!!! Подскажите в рамках этого курса или может отдельного не планируются уроки по DRF? Или например Django+React?
@@selfedu_rus может хотя бы SQLAlchemy? В Рунете просто отсутсвует доступная информация на эту тему либо совсем примитивное объяснение и устаревшие практики! Всё равно спасибо огромное за тот материал что уже есть!!!!
Прошëл короче первый жëсткий дедлайн одного известного платного онлайн курса, и вот только сейчас, смотря эти уроки я понимаю те вещи которые изначально так и не дошли до меня во время спринтов, и оказывается всё просто 😐
@@roman_tat кажется, что ЯП. Тоже прохожу их курсы. Они молодцы, конечно, спору нет. Но порой теория там преподносится так, будто я пришла учиться, уволившись из гугла ._. А этот канал просто спасение для меня
Большое спасибо за урок, очень много инфы, что мозг лопается. Вопрос такой - как потом данные выводить на фронт? Слышал, что там какой-то API интерфейс для вывода информации на фронт, что мне кажется сложновато. Надеюсь тут в уроках об этом есть. Завтра смотрю шаблоны.
Во фронт в Django отдается обычный HTML-документ. Если же нужно передавать данные в унифицированном формате, например, JSON, то используется (часто) бибилотека DRF (о ней сейчас выкладываю занятия).
Добрый день! Create он же по капотом вызывает метод save у объекта нашего класса, который объект наследует от Model. Метод get под капотом вызывает фильтр и делает проверку на количество записей. Верно?
Сергей, а тоже ж самое можно сделать через админку, есть ли какие-то преимущества делать это в ручную, а не используя интерфейс в админке куда просто заносить сразу данные можно?
@@nomadicus77 Не все же вы сами будете добавлять? ) Просто часто делают авторизацию на сайте и пользователи выкладывают свой контент. Здесь уже нужен булет ORM. Или, если у сайта появляется свой внешний API. Тут тоже ORM. И так далее.
здравствуйте! огромное спасибо за ваши труды! у меня вопрос - касаемо переменной "_" которая присвоила значения title и content... каким образом работает эта переменная, как она сохраняет значения?? пересмотрел несколько раз, но все равно не понял... был бы крайне признателен за объяснение! спасибо!
Спасибо! Это специальная внутренняя переменная в PYthon при работе в интерактивном режиме исполнения команд. Сама среда (интерпретатор Python) ее автоматически формирует и сохраняет последнее значение операции. К Django и ORM она никакого отношения не имеет :)
Добрый день. Попросил у БД все записи. w1[0].title вернул title, w1[0].content не отреагировал, print(w1[0].content) вывел None.... w1[0].time_create вывел время... почему не получается дотянуться до контента?
я правильно понимаю ,что переменные не сохраняются,когда я выхожу из программы? я могу обратиться списку того,что у меня хранится в бд,но не могу обращаться к переменным(w1,w2),которые создал на прошлой сессии. Есть команда,по которой может я могу посмотреть ,какие переменные у меня есть?
Может Вы пропустили обязательные поля? Т.е. на примере Сергея явно, что обязательные поля для новой записи модели Women - это title и content. Это просто догадка, возможно будет полезным, спасибо.
смотрю на это и думаю, ну зачем такие сложности, можно же просто писать sql запросы, не запоминая все эти gte filter и прочие. Зачем на основе и так легкого языка запросов создавать свой язык запросов, типа ну что за глупость. А потом вспомнила, что многие языки программирования написаны на основе других языков программирования. И я такая "А вот зачем"
Почему у меня в поле id, когда я создаю экземпляр класса, подстраивается не id, а первый аргумент экземпляра? Типо у меня в классе name, content, price, in_stock. В скобках у меня пишется не None, а значение переменной name. id появляется, только если при создании экземпляра класса перед name его прописать. Пример: Product('name', 'content', 25000) будет ошибка, а если Product(1, 'name', 'content', 25000) то id = 1 и ошибки нет
@@selfedu_rus да-да, уже всё работает. Не внимательность меня когда-то погубит) Я пол часа втыкал в никуда и только переделав проект заново я увидел ошибку)
SQLiteStudio выберите вкладку "данные", там будет сохраненная инфа. У меня была открыта вкладка "структура", и я немог понять сработала команда "save()" или нет.
Для того, чтобы показать, как работает орм. Каждая такая запись в консоли может быть записана во вьюшке - и таким образом, вьюшки будут производить операции с БД
def __str__(self): return self.title появился вопрос а как сделать так что бы при вызове Women.objects.all() показывалось не только поле title а допустим title + content
Ребят, если у кого-то, как и у меня из консоли в pycharm не работала команда from, а консоли выдается ошибка: "from" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. То просто сначала пропишите python manage.py shell, а потом можете использовать from women.models import Women
Заметил, что метод order_by() сортирует сначала по заглавным буквам, а потом по прописным. Сначала я не понял почему Wika впереди dolina. Так же dYlona будет перед dolina
Хе хе хе... Мы используем метод get() не потому что в Джанго такая конвенция. А потому, что метод filter() возвращает QuerySet - итератор. А у итератора нет атрибутов экземпляра. То есть, если к QuerySet применить атрибут - например заголовок Women.objects.filter(pk=2).title то запрос вернет ошибку TypeError - iterator has no attribute title. В отличие от метода filter() метод get() возвращает экземпляр класса Women, а не список экземпляров, каковым является QuerySet. У экземпляра класса есть атрибуты, поэтому запись Women.objects.get(pk=2).title вернет заголовок записи с pk равным двум. А конвенции тут не причем.... так Питон устроен просто.
Подскажите пожалуйста,хочу добавить объект : t1=TaskWall.objects.create(cat=Category, title='Отправить 2 роту', text='Командующий майор Епифанцев, снаряжение ак 47, бронежилет, рация',time_perfomance='01.01.2010',user='admin',worker='admin'). Поле cat связано с таблицей Category, в которой 2 записи наряд и задача. Поля user и worker связаны с расширенной моделью CustomUser. Выдает ошибки : name 'Category' is not defined/Cannot assign "'Category'": "TaskWall.cat" must be a "Category" instance./unexpected indent . пробовал писать 'задача' тоже не работает .Вопрос как прописывать поля cat, user , worker.
@@selfedu_rus выполняю пошагово все как в уроке - выдает пустой список и все! понимаю, что на данный момент это не принципиально, но блин... хочу, чтоб и у меня выдавались запросы :) все остальные моменты работают - таблица заполняется, обращение к полям записи происходит из консоли выходил, заходил, импортировал... уж и не знаю где рыть. комментарии просмотрел - вроде ни у кого такого не было
Даже когда лень учиться, включаю Ваши видео, сразу интерес появляется, спасибо за уроки!
есть такое)
+
+1
Приятно слушать, без спешки и без затягиваний, всё понятно, подача просто экстра-класс !
Я могу с уверенностью сказать что это лучшее обучающее видео по веб девелопменту в русскоязычном Ютубе. Объясняете всё очень хорошо очень понятно, использование указки-карандаша - очень сильный момент, к сожалению многие почему то не используют этот приём
А Яндекс практикум?
яндекс это бред
@@dzhegutin9876
Отличое видео! Спасибо!
Спасибо, всё круто объяснили. Я начинающий программист и только учусь, но это мне круто помогло
О, эта фраза - «почему так произошло?», тянется через все курсы. Греет слух))
А мне больше нравится постоянная фраза " как видите, абсолютно ничего сложного " - она вселяет веру даже тогда, когда абсолютно ничего не понятно))
Спасибо за видео! Смотрю уроки по мере выхода. Небольшое дополнение про разницу в работе методов objects.filter() и objects.get() (21-23 мин). Возвращаемые ими объекты всё-таки отличаются в случае выбора одной записи из базы данных . Первый метод возвращает QuerySet (состоящий из одного экземпляра записи), а второй возвращает непосредственно экземпляр записи.
да, спасибо, об этом запамятовал сказать!
спасибо за этот плейлист, дай бог здоровья автору, лучше уроков, наверно, в этой жизни не увижу никогда
да все обясняете это важный момент в преподавание спасибо!
8:30 Небольшое замечание по "pk". В случае, если в модели явно задано поле, со свойством primary_key=true, то к нему можно будет обратиться по алиасу "pk". Если поля с заданным свойством нет, то Django автоматически задаёт это свойство полю "id". Поэтому pk не всегда означает id.
Благодарю за урок! Самое лучшее объяснение из всех что я слышал.
Огромное спасибо за то, как вы подаете материал. Вы лучший!
Всё кратко, чётко и по делу. Очень сильно помогает ваши видео понимать как устроен Django=)
Спасибо за адекватную подачу информации
Лучшие уроки по Django!! Жду следующего видео!! +rep
Спасибо вам ценю ваш труд уроки очень понятно присваивается
Вы Бог программирования пришедший в этот мир, научить простых смертных
Это огонь! И сама ORM, и подача материала
Лайк, комментарий... смотрю регулярно... пардон что иногда забываю ставить лайк)))
the special one, selfedu. Thank you so much
Посмотрел Хирьянова. Очень понравилась подача. Решил обучиться, прочитать. Прочел книгу за авторством Матиза. Интересно, но стопорно после прочтения. Многие аспекты остаются без освещения.
Автор данного видео более подробно описывает ньансы, при этом понятным простым языком.
Спасибо!
O_O Подчёркивание сохраняет последнее действие.... Спасибо!
Огромное спасибо за ваш труд!
Спасибо Вам за урок! На начальных стадиях, базовых возможностей я думаю хватит! Очень хороший урок!
Спасибо, потом сделаю еще, более расширенное рассмотрение ORM Django
@@selfedu_rus Вам спасибо!!!
Добавлю,
Помимо pk__gte (больше или равно) и pk__lte (меньше или равно), есть еще и pk__gt (больше) и pk__lt (меньше)
Слишком хорошее объяснение, спасибо!!!
Как же радуется мой перфекционизм когда у тебя получаются ровные линии
Спасибо за урок!
Сергей, спасибо большое!
чел, насколько ты хорош:)
Лучший как всегда,оставлю коммент для продвижения )) Надеюсь Джанго будет много ))
Спасибо за урок! Как всегда, отлично!👌
Зачетный урок!
Спасибо. Все очень доступно.
Спасибо, Сергей. Всё отлично!
Thanks so much for your deep explanation, keep it up buddy👍
Божественно, спасибо!
спасибо - теперь все встало на свои места.
Бомбический материал!
Теперь фраза "студент склеил модель" звучит более интригующе.
Коммент в поддержку. Крайне понятно
16:28 - что если после строчки print(wi.title) мне не дают сделать еще один отступ, а сразу начинается запуск команды и выдается ошибка, что у меня нет отступа, хотя, какие клавиши не зажимал, консоль просто никогда дает сделать отступ
thx! Так-то все легко и понятно, но запомнить это...)
Кльово!!)) Дякую!!)))😊
хорошо объясняете, не монотонно, многие объясняют монотонно и нечего не улавливается
Великолепно
Получается в видео описан способ взаимодействие с базой данных через ORM, но ничего же нам не мешает взаимодействовать с базой данной напрямую, сформировать ее поля, а потом просто подключить к проекту. Просто в чем удобство описываемого метода, не для этого же Django придумали?
Связь через ORM хороша тем, что SQL-запросы оптимизируются под любой доступный тип СУБД, который можно подключить к Django, при этом в саму программу не потребуется вносить никаких изменений.
Уроки просто супер!!! Лучшая подача в Рунете!!! Вам огромное спасибо ещё раз!!! Подскажите в рамках этого курса или может отдельного не планируются уроки по DRF? Или например Django+React?
Спасибо, пока этого не планирую
@@selfedu_rus может хотя бы SQLAlchemy? В Рунете просто отсутсвует доступная информация на эту тему либо совсем примитивное объяснение и устаревшие практики! Всё равно спасибо огромное за тот материал что уже есть!!!!
@@Max-s6x Будет занятие по основам ORM Django
Класс!
почему у меня после кода с self ничего не поменялось в терминале?(вводил exit() и входил заново)
pumfnuci
pumfnuci
4 месяца назад
Очень доходчиво(коммент для продвижения))
Прошëл короче первый жëсткий дедлайн одного известного платного онлайн курса, и вот только сейчас, смотря эти уроки я понимаю те вещи которые изначально так и не дошли до меня во время спринтов, и оказывается всё просто 😐
Уж не ЯП, ли?)
@@roman_tat кажется, что ЯП. Тоже прохожу их курсы. Они молодцы, конечно, спору нет. Но порой теория там преподносится так, будто я пришла учиться, уволившись из гугла ._.
А этот канал просто спасение для меня
Зачетное видео
Комментарии для поддержки канала 🖐️☺️
Большое спасибо за урок, очень много инфы, что мозг лопается. Вопрос такой - как потом данные выводить на фронт? Слышал, что там какой-то API интерфейс для вывода информации на фронт, что мне кажется сложновато. Надеюсь тут в уроках об этом есть. Завтра смотрю шаблоны.
Во фронт в Django отдается обычный HTML-документ. Если же нужно передавать данные в унифицированном формате, например, JSON, то используется (часто) бибилотека DRF (о ней сейчас выкладываю занятия).
Спасибо за уроки! А есть активная ссылка на сайт русскоязычной документации?
Добрый день! Create он же по капотом вызывает метод save у объекта нашего класса, который объект наследует от Model. Метод get под капотом вызывает фильтр и делает проверку на количество записей. Верно?
Что ты за тип такой? просто красучег!
нам обязательно делать запросы к бд через терминал? внутри фрейма это возможно сделать? а то как то через терминал не слишком удобно выглядит...
нет, конечно, через терминал идет лишь демоснтрация ORM-команд
Сергей, а тоже ж самое можно сделать через админку, есть ли какие-то преимущества делать это в ручную, а не используя интерфейс в админке куда просто заносить сразу данные можно?
Можно, но на уровне приложения (программы) нужно прописывать эти команды. Например, для формирования выборки данных из БД для шаблонов.
@@selfedu_rus ну я имел ввиду, можно ж просто создать поля и в них добавлять разве нет?
@@nomadicus77 Не все же вы сами будете добавлять? ) Просто часто делают авторизацию на сайте и пользователи выкладывают свой контент. Здесь уже нужен булет ORM. Или, если у сайта появляется свой внешний API. Тут тоже ORM. И так далее.
здравствуйте! огромное спасибо за ваши труды! у меня вопрос - касаемо переменной "_" которая присвоила значения title и content... каким образом работает эта переменная, как она сохраняет значения?? пересмотрел несколько раз, но все равно не понял... был бы крайне признателен за объяснение! спасибо!
Спасибо! Это специальная внутренняя переменная в PYthon при работе в интерактивном режиме исполнения команд. Сама среда (интерпретатор Python) ее автоматически формирует и сохраняет последнее значение операции. К Django и ORM она никакого отношения не имеет :)
👏👍
вместо sql studio на ubuntu использовал DBeaver
классная прога
круто
Спасибо за видео)
9:39 подскажите пожалуйста, по какой причине могло случиться так, что вместо sql запроса вывелось просто []
?
такая же проблема. Вы разобрались?
@@misha8280 нет, опустила это. А вы разобрались ?
@@ЕленаМ-ц2ъ я просто не устанавливал sqlite studio и не связывал sqlite studio с джанго. Думаю вся проблема в этом)
Добрый день. Попросил у БД все записи. w1[0].title вернул title, w1[0].content не отреагировал, print(w1[0].content) вывел None.... w1[0].time_create вывел время... почему не получается дотянуться до контента?
Нашел беду. Не верно составлена база данных. Была ошибка в типах данных столбцов...
А как можно быстро данные закидать в БД. Только через Админ-панель?
Спасибо
я правильно понимаю ,что переменные не сохраняются,когда я выхожу из программы? я могу обратиться списку того,что у меня хранится в бд,но не могу обращаться к переменным(w1,w2),которые создал на прошлой сессии. Есть команда,по которой может я могу посмотреть ,какие переменные у меня есть?
Я детали уже не помню, лучше этот конкретный вопрос задайте в телеграм-канал (ссылка под видео)
@@selfedu_rus а почему не помните, у вас нет коммерческого опыта с джанго?
@@alazarn7 мб, видео давно снимал и не помнит конкретно о чем там было
@@moren6164 да не сказал бы, он под другими видео тоже не мог на какие-то простые вопросы дать ответ
@@alazarn7 может и так, кто знает
Я попыталась в БД добавить запись по созданной и импортированной модели и у меня вылезла ошибка...Traceback (most recent call last):
sqlite3.IntegrityError: NOT NULL constraint failed: posts_post.author_id
return Database.Cursor.execute(self, query, params)
django.db.utils.IntegrityError: NOT NULL constraint failed: posts_post.author_id // не пойму ((
Может Вы пропустили обязательные поля? Т.е. на примере Сергея явно, что обязательные поля для новой записи модели Women - это title и content. Это просто догадка, возможно будет полезным, спасибо.
смотрю на это и думаю, ну зачем такие сложности, можно же просто писать sql запросы, не запоминая все эти gte filter и прочие. Зачем на основе и так легкого языка запросов создавать свой язык запросов, типа ну что за глупость. А потом вспомнила, что многие языки программирования написаны на основе других языков программирования. И я такая "А вот зачем"
Почему у меня в поле id, когда я создаю экземпляр класса, подстраивается не id, а первый аргумент экземпляра? Типо у меня в классе name, content, price, in_stock. В скобках у меня пишется не None, а значение переменной name. id появляется, только если при создании экземпляра класса перед name его прописать. Пример:
Product('name', 'content', 25000) будет ошибка, а если Product(1, 'name', 'content', 25000) то id = 1 и ошибки нет
id указан как Primary Key и Autoincrement, поэтому он автоматом формируется в БД
@@selfedu_rus да-да, уже всё работает. Не внимательность меня когда-то погубит) Я пол часа втыкал в никуда и только переделав проект заново я увидел ошибку)
Работаю с "sqlite3". Данные через функцию "save()" не сохраняются. Возможно потому, что в "sqlite3" полем по умолчанию является "rowid"
Эти занятия тоже с SQLite записаны. Было все хорошо.
SQLiteStudio выберите вкладку "данные", там будет сохраненная инфа. У меня была открыта вкладка "структура", и я немог понять сработала команда "save()" или нет.
добрый день. Подскажите, а не проще вот это все создавать непосредственно в самой базе данных? зачем через консоль это все прописывать?
Для того, чтобы показать, как работает орм.
Каждая такая запись в консоли может быть записана во вьюшке - и таким образом, вьюшки будут производить операции с БД
а как сделать чтоб сдвинулись id, после удаления первого елемента?
вроде на уровне SQL есть такая команда, но лучше этого не делать - очень ресурсоемко
А для просмотра последнего SQL-запроса разве connection.queries[-1] не работает?
вполне
def __str__(self):
return self.title
появился вопрос
а как сделать так что бы при вызове Women.objects.all()
показывалось не только поле title а допустим title + content
return self.title + " " + self.content[:50]
@@selfedu_rus спасибо!
Разве не переводится так..
CreateRetrieveUpdateDestroy?
Ребят, если у кого-то, как и у меня из консоли в pycharm не работала команда from, а консоли выдается ошибка: "from" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом. То просто сначала пропишите python manage.py shell, а потом можете использовать from women.models import Women
и почему там в скл запросах LIMIT 21? 18:42
в режиме отладки Django сам выставляет ограничение
Заметил, что метод order_by() сортирует сначала по заглавным буквам, а потом по прописным. Сначала я не понял почему Wika впереди dolina. Так же dYlona будет перед dolina
Насыщенно
Променял Энн Хэтэуей на Марго Робби(
Вот зачем управлять ими через shell это ведь муторно, через админку удобнее ведь?
разные бывают ситуации
У меня почему-то connection.queries выводит пустой список
Хе хе хе... Мы используем метод get() не потому что в Джанго такая конвенция. А потому, что метод filter() возвращает QuerySet - итератор. А у итератора нет атрибутов экземпляра. То есть, если к QuerySet применить атрибут - например заголовок Women.objects.filter(pk=2).title то запрос вернет ошибку TypeError - iterator has no attribute title.
В отличие от метода filter() метод get() возвращает экземпляр класса Women, а не список экземпляров, каковым является QuerySet. У экземпляра класса есть атрибуты, поэтому запись Women.objects.get(pk=2).title вернет заголовок записи с pk равным двум. А конвенции тут не причем.... так Питон устроен просто.
У кого connection.queries возвращает пустой список, войдите в режим отладки(settings.DEBUG=True).
Дружище, если бы не ты я бы очень нервничал, спасибо тебе огромное!!! Твой коммент был в самом низу, рад что всё таки нашёл :)
Подскажите пожалуйста,хочу добавить объект : t1=TaskWall.objects.create(cat=Category, title='Отправить 2 роту', text='Командующий майор Епифанцев, снаряжение ак 47, бронежилет, рация',time_perfomance='01.01.2010',user='admin',worker='admin'). Поле cat связано с таблицей Category, в которой 2 записи наряд и задача. Поля user и worker связаны с расширенной моделью CustomUser. Выдает ошибки : name 'Category' is not defined/Cannot assign "'Category'": "TaskWall.cat" must be a "Category" instance./unexpected indent . пробовал писать 'задача' тоже не работает .Вопрос как прописывать поля cat, user , worker.
Спасибо, всё сделал, разобрался
Орнул с Епифанцева))
connection.queries выдает [ ] - пустой список :( что не так?
здесь хранится история, либо ее нет, либо вы ее удалили )
@@selfedu_rus выполняю пошагово все как в уроке - выдает пустой список и все! понимаю, что на данный момент это не принципиально, но блин... хочу, чтоб и у меня выдавались запросы :)
все остальные моменты работают - таблица заполняется, обращение к полям записи происходит
из консоли выходил, заходил, импортировал... уж и не знаю где рыть. комментарии просмотрел - вроде ни у кого такого не было
@@alexprodan3650 та же самая проблема, ошибки нет, но connection.queries пустой
Спасибо за урок!
👍👍👍
А как настроить, чтобы DateTimeField автоматически выставляли время не в UTC а в, допустим, UTC+11?
это в настройках самого феймоврка Django в файле settings.py там увидите нужнуб константу
Благодарю за урок!
Спасибо за урок!
Спасибо за занятие!
Подскажите делаю все как вы, но ранее было видно какие запросы выполнялись и они были сохранены в connection.queries , а теперь выдает пустой список
Спасибо большое за урок!