Найти - Пользователи
Полная версия: Музыкальный сервис
Начало » Python для новичков » Музыкальный сервис
1
isp
Приветствую!

На днях начал изучать python, так как ранее работал только с delphi, c/c++, для меня подобный язык немного в диковинку, если отходить от консольных приложений. Умею работать с *nix подобными платформами.

Ранее, писал win версии плееров на delphi и c++ для vk музыки и яндекс музыки, соответственно. Используя, библиотеку bass и парсер JSON - это, в принципе, задача была простая.

Для более производительного изучения python поставил цель, на своем мини пк для себя развернуть музыкальный сервис.
Что планируется сделать:
- доступ по ip:port на вебморду моего музыкального сервиса, висящего на мини пк
- прослушивание плей-листа дня, подборка, поиск по исполнителю
Вся информация будет браться из вне, запросы отправляться с моего сервера и получать ответ в формате JSON. Парсинг и работа с данными, отправка запросов, работа с api средствами python (скриптинг) не составит труда.

Прошу помощи экспертов по python, а именно задать вектор необходимых инструментов и знаний для реализации данной задачи:
какие инструменты, фреймворки использовать для отображения плейлистов, проигрывания музыки, реализация поисковой строки, взаимодействие интерфейса (фронт-энда) со скриптами.

Буду также признателен, уже примерам готовых открытых подобных проектов на python, либо обучающему материалу по данному направлению.

Заранее благодарен!
py.user.next
isp
Ранее, писал win версии плееров на delphi и c++ для vk музыки и яндекс музыки, соответственно. Используя, библиотеку bass и парсер JSON - это, в принципе, задача была простая.
А где твой код?

Да, и вопрос такой: почему свой код, который ты уже написал, ты не можешь переиспользовать в программе, которую собрался на питоне писать?

Код бывает разный. Один может на C++ писать что-то и другой может на C++ писать прямо то же самое, но при этом их коды могут о-о-очень сильно отличаться. Большие вопросы вызывает тот факт, что ты не сделал изолированные компоненты, которые уже работают и с которыми можно общаться через их API, и которым всё равно, откуда там приходят запросы и ответы, с vk там или не с vk, с веб-морды или не с веб-морды, или вообще с Марса. То есть видно, что ты не владеешь этой техникой. Также ты с чего-то взял, что “программа на питоне” должна быть вся-вся-вся вся-вся и вся-вся написана на питоне. Многие вот думают, что танки написаны на питоне. Они написаны, вообще-то, на C++, но на питоне там написано тоже немало, поэтому и говорят, что они на питоне написаны. С чего ты взял, что есть какая-то сегрегация? А если питон не сможет распознать какой-то один звуковой формат из сотни форматов, ты всё, выкинешь весь проект в корзину из-за этого?

Так что покажи сначала, что ты писал. А тебе уже дадут совет, как тебе там дальше учиться. И тем более, если ты работу ищешь, так завуалированно рекламируя себя типа ты ученик такой, то код тоже имеет значение. Мало ли что ты там предлагаешь. Может, ты там типа “ООП знаешь”, как многие считают сами про себя, но вот что-то почему-то больше ста строк на нём написать не можешь красиво, потому всё что-то как-то перемешивается и ломается в нём, если там в нём больше тысячи строк становится. Изучат маленький кусочек айсберга, верхушку, от ООП и им кажется, что это и есть всё ООП, а там подводная часть ещё огромная, включающая в себя ОО-анализ и ОО-проектирование.

А JSON для тебя должен быть вообще как азбука. Ты ещё скажи, что ты в ворде умеешь документы набирать. У меня вообще свои форматы в программах бывают, потому что мне так удобно. Если есть JSON, я не обязан всё в JSON засовывать, я могу свой формат сделать и пользоваться им сколько угодно.
isp
py.user.next
Так что покажи сначала, что ты писал. А тебе уже дадут совет, как тебе там дальше учиться. И тем более, если ты работу ищешь, так завуалированно рекламируя себя типа ты ученик такой, то код тоже имеет значение.
Вот, как пример, мой плеер для вк музыки
Более хвастаться не буду, выкладывая свое портфолио, так как я не ищу работу, как ты сказал.

py.user.next
А JSON для тебя должен быть вообще как азбука. Ты ещё скажи, что ты в ворде умеешь документы набирать. У меня вообще свои форматы в программах бывают, потому что мне так удобно. Если есть JSON, я не обязан всё в JSON засовывать, я могу свой формат сделать и пользоваться им сколько угодно.
с этим проблем нет, ты прав, об этом я и написал:
isp
Вся информация будет браться из вне, запросы отправляться с моего сервера и получать ответ в формате JSON. Парсинг и работа с данными, отправка запросов, работа с api средствами python (скриптинг) не составит труда.

py.user.next, в целом, ты меня абсолютно не понял.

Для себя я выяснил, что мне надо скорее всего django + python, как мини mvc представление: django интерфейс музыкального плеера, python код, есть нюансы с плеером для воспроизведения и не понятно как это все будет выглядеть на django (обложки, интерфейс в целом).

py.user.next
isp
Вот, как пример, мой плеер для вк музыки
Я пролазил весь твой сайт и аккаунт во ВКонтакте, даже зашёл к тебе на фриланс аккаунт, но не нашёл ни строчки кода. Нашёл только одну функцию на Дельфи и всё.

Но даже без кода, по внешнему виду Avito Monocle, я понял, что ты не можешь дальше пустить эти строки из Avito Monocle на вход следующей программе, чтобы следующая программа уже занялась более тонким анализом этих товаров, полученных в Avito Monocle, или чтобы Avito Monocle пустила эти найденные строки на вход самой себе же, но с другими параметрами, и нашла уже что-то для этих известных строк дополнительно. Также у меня вопрос возник о том, как ты будешь исключать из списка наушников какие-то причендалы для наушников, за которыми не нужны следить. Насколько глубок твой язык для задания ключевых строк? Это несущественно, конечно, так как туда можно быстро подключить регулярки или свой микроязык сделать со значками + и - для ключевых слов. Но самое главное, что эти данные ты больше никуда передать не можешь. У тебя нет этого видения конвейерной работы разных программ. Если какой-то программы нет, то ты думаешь, что её и не будет никогда. А ведь она может появиться.

Просто задай себе вопрос: можешь ли ты прямо сейчас оформить всю программу Avito Monocle в виде изолированного компонента, который принимает на вход запрос в виде простых данных и выдаёт результат на выход в виде простых данных?

isp
Умею работать с *nix подобными платформами.
Как раз эти принципы, которые я тебе описал, я узнал, работая в Unix-подобных операционных системах и изучая язык C по трудам Денниса Ритчи и других мастеров. Там просто всё испещрено конвейерами из программ, и говорится об этом в куче разных мест. А по тебе видно, что ты начинал с Дельфи и Паскаля, поэтому мозги сформировались чисто паскале-досовским образом. Потом ты мигрировал в винду, а там система для бухгалтерш тупых, в которой программистского нет ничего. Над бухгалтершами у тебя, конечно, приоритет появляется, ты умнее бухгалтерш, конечно, ну и что? Как программист-то ты всё равно не развиваешься.

isp
Для себя я выяснил, что мне надо скорее всего django + python
Тебе надо сначала мозги вправить. Ты забудь про Windows, поставь себе Linux и изучай программы там. Они маленькие, но ими пользуется весь мир уже сорок лет не просто так.

pvk у тебя хорошо получилась, но это прошлый век уже. Сейчас цепочки из программ рулят. Если твою программу нельзя встроить в цепочку, про которую ты даже не знал, когда свою программу разрабатывал, то твоя программа будет жить только у тебя на компе.

isp
что мне надо скорее всего django + python, как мини mvc представление
Не заморачивайся с MVC, оно тебя не спасёт. Django нужен для разработки сайтов с админками. На Flask'е ты свою хрень напишешь легко, там тебе придётся налечь на JavaScript, потому что всё общение с веб-мордой идёт через скрипты на нём. Не думаю, что у тебя будет миллион запросов, чего Flask не выдержит. Лишь изредка тебе придётся что-то там посылать по HTTP. Если же ты будешь писать музыкальный сервис на Django, то у тебя в итоге получится музыкальный интернет-магазин, а не музыкальный сервис. Пока что я вижу, что ты хочешь программы свои в винде, которыми никто не пользуется, переписать в веб, чтобы ещё и там ими никто не пользовался.

Так что учись инкапсулировать, учись создавать хорошо изолированные модули по принципу чёрного ящика. Есть модуль, есть интерфейс у него, всё, больше ничего не должно быть видно про него. Поставить его можно на комп, на сайт, на смартфон, в бот. Ты знаешь, что такое когезия и связанность? Вот поизучай эти понятия. Называются cohesion и coupling. У программ должна быть высокая когезия (связность) и низкий каплинг (связанность). (Программу саму мы считаем таким компонентом просто, модулем, объектом и так далее, поэтому и все правила для этих элементов должны соблюдаться и для неё самой.)
isp
py.user.next, благодарю, за столь развернутый ответ.

py.user.next
Я пролазил весь твой сайт и аккаунт во ВКонтакте, даже зашёл к тебе на фриланс аккаунт, но не нашёл ни строчки кода. Нашёл только одну функцию на Дельфи и всё.
у меня нет аккаунта на фрилансере, но не суть.

py.user.next
Тебе надо сначала мозги вправить. Ты забудь про Windows, поставь себе Linux и изучай программы там. Они маленькие, но ими пользуется весь мир уже сорок лет не просто так.
Собственно поэтому и пишу здесь Есть пару мини пк с дебиан, скажем так для обучения.
Согласен, сформировал свои знания в эпоху интернета, когда развивался брутфорс, кейлог и прочая дребедень, преимущественно нативное ПО под win, полностью закрытое, не модульное, что не скажешь про текущее время опенсорса.

Для разработки на python, даже по старинке использую visual studio, по мне очень удобно, а на nix что лучше всего? да и под windows тоже можно рассмотреть, чтобы быть ближе ко всему этому

На сайте представлено далеко не все мое ПО, сделан ради фана, так как он есть и мне лень им заниматься В один прекрасный миг, я отошел от программирования и ушел в другую сферу деятельности, спустя некоторое время понял, что настоящее, неистовое удовольствие получал лишь от программирования и вот решил вернуться, а без помощи сообществ не будет такой производительности в освоении.

py.user.next
Пока что я вижу, что ты хочешь программы свои в винде, которыми никто не пользуется, переписать в веб, чтобы ещё и там ими никто не пользовался.
доля правды есть, но чтобы не пользовался не в том смысле, что будет плохое, а в том, что проект будет для себя, в качестве обучения, “вправления мозгов”. Ключ api, той же яндекс музыки, защищен от перехвата в приложение. Появись ключ в паблике, толку от моего плеера будет нулевой, а так мне естественно не жалко

py.user.next
На Flask'е ты свою хрень напишешь легко
вот здесь спасибо. А есть примеры проектов подобных? Есть качественная литература “без воды” по JS?
И еще какие-нибудь пожелания и рекомендации? Благодарю!
py.user.next
isp
у меня нет аккаунта на фрилансере
Нет, он там есть, но не суть.

Это неважно, потому что все эти фрилансерские ресурсы - это всё фейки, которые заманивают дурачков, чтобы собирать с них деньги. Ты сидишь там, такой специалист, и думаешь “почему я никому не нужен? почему никто работы у меня не заказывает? я же могу сделать всё”, а там всё просто. Если ты заплатил хозяину сервиса, то он тебя будет иногда показывать заказчикам, а если не заплатил, то он будет делать вид, что тебя показывает. Ты просто заказчиком становишься и пытаешься себя найти и тут обнаруживаешь, что ты себя найти не можешь как исполнителя. А кажется, что тебя все видят, просто тебя типа не выбирают. А как заплатишь, так ты такой сразу популярный становишься. Но это недолго, потом тебе начинают навязывать, чтобы ты проценты сайту отдавал побольше с заказов, и так далее. То есть это не биржи, а псевдобиржи, которые только притворяются биржами.

isp
Есть пару мини пк с дебиан, скажем так для обучения.
Тебе надо будет поставить Linux второй системой рядом с Windows. Не на виртуалку, а второй системой. Там будет загрузчик GRUB потом, как космический корабль он такой по своему устройству, и в нём будет два пункта: Linux и Windows. То есть Linux должна одна на компе работать и вся память и диски должны быть только ей доступны. А потом уже в неё поставишь виртуалку, а в эту виртуалку поставишь Windows себе. И то, если это понадобится вообще. Я вот, например, занятия по ассемблеру провожу в Windows XP на виртуалке. Если она повисла или там синий экран выдаёт, компьютер перезагружать не надо, ты просто её выключаешь и загружаешь потом по новой с сохранённого снимка, где с ней всё в порядке.

Дальше тебе надо будет взять редактор с подсветкой синтаксиса. В Linux есть два редактора: Emacs и Vim. Это для профессионалов. Ну, плюсы и минусы у них есть у обоих. Хорошо бы их оба знать. Просто Emacs сильнее, чем Vim, но Vim везде установлен в виде своего предка vi. Если ты попал в какую-то *NIX-систему, то vi там уже установлен, а Emacs туда надо ставить и там его нет. Я пользуюсь Emacs'ом, поэтому я и сообщения на этом форуме смотрю в Emacs'е, и новые видео, появляющиеся на интересующих меня YouTube-каналах тоже вижу в Emacs'е, и новости в стране и в мире я тоже смотрю в Emacs'е, да и сериалы как-то качал в нём тоже, было дело. Ну, Vim это всё не вывезет. В Vim что-нибудь да не получится сделать. А в Emacs'е мало что не получается сделать.

Есть даже такая шутка: в Emacs'е всё есть, вот только одного не хватает - какого-нибудь простого текстового редактора.

Emacs я начал изучать вот по этому курсу (чисто для вхождения)
https://www.youtube.com/playlist?list=PLECBtie1W1tGlrbDDBvcxnttRR4IA5qZn
Но также в нём много внутренней документации, она простая и её много. Потому что он весь внутри себя автоматизирован по максимуму. Поэтому документация в нём тоже автоматизирована удобно.

Ну, что говорить, один калькулятор в Emacs'е умеет интегралы вычислять, векторные скалярные произведения, матрицы перемножать, искать их определители и даже корни уравнений и систем уравнений находить. Это просто одна из частей Emacs'а.

А здесь можно посмотреть возможности Emacs'а (что в нём возможно делать и с какой быстротой)
https://www.youtube.com/playlist?list=PLVfFIUHWy-aNaF08m34sO81dsVr4L7uI-
Тут можно посмотреть разные фичи.
Вот одна из фич - мультикурсор. Ты просто можешь выделить одну функцию по заголовку и потом установить курсоры (несколько курсоров сразу) на десяток функций и просто начать у всей этой группы функций редактировать аргументы. Ты редактируешь одну функцию, а у тебя редактируются сразу десять функций следом. То есть работает не как замена по шаблону, типа одно заменить на другое по всему файлу, а это работает как одновременное редактирование файла в нескольких местах, и у каждого курсора при этом свой личный буфер обмена, то есть ты можешь вырезать, копировать, вставлять, и оно будет всё правильно вырезаться и вставляться, именно не одно и то же, а разные буферы обмена будут использоваться на разных строках. На одной строке встанет int, а на другой строке встанет string, а на третьей - double.

Emacs'у больше сорока лет, поэтому в нём есть все языки, и эти средства тоже в нём отлажены годами.

Дальше тебе надо будет научиться использовать систему контроля версий. В Linux есть Git. На базе программы Git был построен сервис GitHub. Многие путают эти вещи между собой. Git - это программа. Вот её надо изучить. Если ты изменение сделал в программе, то это изменение фиксируешь. Если оно неправильное, то ты его убираешь на время. Если оно всё-таки правильное, то ты его спокойно возвращаешь обратно. То есть она даёт множество тонких изменений в программе проводить одним махом.

Дальше тебе надо будет изучить юнит-тестирование. Юнит-тесты - это такие программки маленькие, которые в твой код залазят в каждую функцию и проверяют, как эта функция работает. Когда пишешь программу, ты её покрываешь юнит-тестами и после каждого изменения программы ты их просто все запускаешь и каждый из них куда-нибудь там залазит в самые дебри и что-то там проверяет. Если всё окей, то он тебе скажет “всё окей”, а если там какой-то неверный результат начал выдаваться, то он тебе скажет “в функции такой-то на десятой глубине я сказал 10, а оно сказало 20, а должно было сказать 15!” и красным цветом тебе пометит всё это. И так у тебя там сто, двести, тысяча тестов просто запустится и там ни одна ошибка не проскочит в итоге. Называется пуленепробиваемый код.

Дальше ты поставишь среду ещё. Она неплохая, но лучше научиться по отдельности всем пользоваться. Для питона ты поставишь PyCharm. Это основная среда сейчас для питона.

Я вот, например, себе эти всякие среды ставлю, но я ими не пользуюсь. Я пишу на нескольких языках, поэтому на C, на C++, на Java, на Shell, на Python и других иногда я пишу в Emacs'е всё время. Но сборку только я провожу в этих средах, если нельзя без них собирать. Только для этого эти среды стоят, а так они нафиг не нужны. Я могу среду эту выключить, в Emacs'е всё отредактировать, в Git'е всё закоммитить, а потом просто один раз запустить эту среду и собрать программу в ней, да и то не всегда. Потому что никакой редактор в этих средах даже близко ничего не может из того, что мне Emacs уже даёт годами.

isp
А есть примеры проектов подобных?
Проекты вообще всякие можешь поискать на GitHub'е
https://github.com/topics/flask
Но вот то, что ты описал, оно на Flask'е делается легко.
Основной функционал интерфейса будет на JavaScript-скриптах.

isp
Есть качественная литература “без воды” по JS?
Да есть книжки и платные, и бесплатные. Я по бесплатной его изучал для ознакомления.
https://eloquentjavascript.net/
Тут стандарт JavaScript
http://ecma-international.org/ecma-262/


tags: linux
isp
py.user.next
например, занятия по ассемблеру провожу в Windows XP на виртуалке
навеяло ностальгией, я asm не знаю, но когда-то использовал olly debugger в качестве отладки и анализа по
py.user.next
Дальше тебе надо будет изучить юнит-тестирование.
сейчас обучаюсь, пишу простенькие скрипты, работа со списками и попробовал уже unittest, но в качестве простейшего “assertEqual”, проверять что на выходе работы функции, в дальнейшем планирую приобрести книгу “Python. Разработка на основе тестирования” Персиваль.
py.user.next
Дальше тебе надо будет научиться использовать систему контроля версий
Здесь не знаю, стоит ли покупать книгу, либо достаточно статей в интернете? Гипотетически ничего сложного в этой системе нет, как работа с бд: коммит, роллбэк ?
py.user.next
Я вот, например, себе эти всякие среды ставлю, но я ими не пользуюсь.
а программу не отлаживаешь? пошаговое отслеживание выполнения с брекпоинтами? или это не актуально для python?
С JS может быть затык он мне еще давно как-то не понравился, наверное, стоит все-таки приобрести книгу и по нему.
Благодарю!
py.user.next
isp
навеяло ностальгией, я asm не знаю, но когда-то использовал olly debugger в качестве отладки и анализа
Короче, он нужен для патчинга уже готовых программ. У тебя, например, парольный менеджер стоит, я беру, применяю патч к нему, который сам изготовил. Ты им пользуешься дальше, а патч во время применения залез в какую-нибудь dll-библиотеку этого менеджера и пропатчил её так, что она все твои пароли так же шифрует, как и раньше, ты типа защищён там, но перед этим она их теперь сохраняет ещё в отдельный текстовый файлик в каком-нибудь зашифрованном виде и он там где-то рядом лежит. Ты смотришь - какой-то файлик появляется, в нём бинарная строка какая-то просто, думаешь “ну, программа там себе что-то сохраняет, не знаю”. А я потом прихожу, этот файлик забираю и все твои пароли в нём. Ни один антивирус всю эту хрень не покажет, потому что эти все антивирусы только на массовые инциденты срабатывают, которые зарегистрированы у них там в базах и так далее. То есть ты не просто ради интереса его изучаешь, а ты им можешь операции какие-то проводить над уже готовыми программами, исходников которых у тебя нет. Я вот как-то в Linux в одной программе думал “как бы её splash-screen убрать текстовый?”, там не было опции, каждый раз название этой программы на весь экран выводилось при каждом запуске. Взял её, посмотрел, из чего она там состоит, нашёл динамическую библиотеку, где этот splash-screen хранится в виде строки и просто туда нуль-символ поставил на место её начала (там длину нельзя менять у файла) - и всё, splash-screen'а не было больше, программа работала прекрасно. До ассемблера я даже не полез бы там что-то искать, так как непонятно, где там что, как оно устроено, файлы полностью бинарные.

isp
сейчас обучаюсь, пишу простенькие скрипты, работа со списками и попробовал уже unittest, но в качестве простейшего “assertEqual”, проверять что на выходе работы функции, в дальнейшем планирую приобрести книгу “Python. Разработка на основе тестирования” Персиваль.
Ну вот, в питоне есть unittest, он скопирован с Java, там они появились. А вообще в питоне используют pytest сейчас. Я также использовал doctest, пока не было pytest. На них можно быстро писать эти тесты, быстрее, чем на unittest. Но на unittest всё есть и оно хорошо документировано. Там тебе нужно будет ещё изучать моки. Мок - это такой объект-кукла или объект-чучело. Суть в том, что если у тебя функция подключается по сети куда-то там, то можно ей вместо сети дать вот такой объект-куклу. А этот объект-кукла будет твоей функции сообщать “о! подключение удалось! страница есть на сайте!” и даже будет этой функции писать текст этой страницы, включая исходник там и всё прочее. Функция даже не будет понимать, что это не сеть никакая, а просто пустышка, которая изображает из себя сеть. То же самое там с базами данных делается, если функции там что-то пишут или читают из них. Это нужно, чтобы максимально со всех сторон протестировать эту функцию, и при этом не нужно было там ждать подключений, настоящие базы там трогать и тому подобное. Там разные разновидности есть таких объектов. Это всё надо будет изучить, но оно небольшое.

isp
Здесь не знаю, стоит ли покупать книгу, либо достаточно статей в интернете? Гипотетически ничего сложного в этой системе нет, как работа с бд: коммит, роллбэк ?
Она сложная, но её сделал тот же, кто Linux сделал. То есть она бесплатная, она будет всегда.

Книжка по Git'у бесплатная
https://git-scm.com/book/en/v2
В самом Git'е есть так же вся документация по нему. То есть ты его в Linux'е когда ставишь, там man git набираешь в консоли и всё, оно тебе сразу открывается со всеми переходами.

Инфа по версионированию программ
https://semver.org/

isp
а программу не отлаживаешь? пошаговое отслеживание выполнения с брекпоинтами? или это не актуально для python?
С JS может быть затык он мне еще давно как-то не понравился, наверное, стоит все-таки приобрести книгу и по нему.
Благодарю!
Вот Unit-тесты как раз снимают эту необходимость в дебаггере. Они есть и для питона, и для JavaScript, и для C. Когда я себе делал веб-приложение, оно запускалось локально и было на JavaScript написано. Так его функции я все прижал юнит-тестами. Ну, когда функцию покрываешь юнит-тестами, она становится такой прижатой со всех сторон, потому что ты юнит-тестами проверяешь её каждую сторону. То же самое было на C. Когда я писал свою программу без юнит-тестов, я постоянно сидел в дебаггере gdb, потому что просто не понимал, почему оно там не преобразуется правильно. Но вот когда я CUnit поставил и покрыл исходники юнит-тестами, то сразу эти проблемы решились и в дебаггер я просто перестал заходить. То есть дебаггер - это древнее средство, которое нужно было, чтобы определять хотя бы в каком месте проблема. А сейчас юнит-тесты когда есть, то половина из них показывает, где проблема, а половина показывает, где всё окей. То есть поменялся процесс разработки. Дебаггер сейчас нужен, когда ты в чужом коде хочешь что-то найти, разобраться в нём и так далее.

isp
С JS может быть затык
Там много асинхронного кода на нём пишется обычно. А асинхронщина - это отдельное направление в разработке. То есть нужно знать все эти модели тоже. То есть одного JavaScript может не хватить, потому что надо будет сделать что-то асинхронное, а ты асинхронные вещи никогда не делал. И JavaScript в этом не поможет, потому что для этого надо асинхронные модели изучать.
isp
py.user.next
Проекты вообще всякие можешь поискать на GitHub'е
https://github.com/topics/flask
Могли бы порекомендовать ресурсы или книгу (которые начал изучать, относительно устарели) для изучения Flask? Был бы благодарен такой же информации и по django
py.user.next
isp
Могли бы порекомендовать ресурсы или книгу (которые начал изучать, относительно устарели) для изучения Flask? Был бы благодарен такой же информации и по django
Документация по Flask
https://flask.palletsprojects.com/en/latest/
Документация по шаблонизатору
https://jinja.palletsprojects.com/en/latest/

Документация по Django
https://docs.djangoproject.com

Книга по Django
https://django-book.readthedocs.io/en/latest/index.html

Книгу читаешь обычно для общего представления о системе, а так учишь просто документацию и потом применяешь свой опыт разработки для построения программ, используя выученную документацию для записи этого всего.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB