Найти тему
Computer Pro

Дипломный проект на Django framework. Интернет-магазин. Начало. Создаём пользователя и входим на сайт.

Часть 1.

Начинаю разработку сайта интернет магазина на фреймворке Django, что входит в программу обучения на платформе SkillBox "Профессия Python-разработчик". Дипломный проект рассчитан на 10 недель. Вот видимо в течении этого времени я и буду вести эту публикацию.

Данный цикл статей, постов и видеороликов делается в первую очередь для себя и тех людей кто выполняет подобное обучение, людей интересующихся IT. На экспертное мнение не претендую. Это нечто типа электронной записной книжки где я попытался упорядочить свои мысли и понять куда двигать дальше.

Начинаем с установки проекта

В Гитлабе появился новый репозиторий, из которого нужно собрать проект. Лично мне, в описании к сборке пакета, показалось очень много недосказанностей и туманностей. Почему не выложить подробную инструкцию о том как правильно начать проект - не понятно. А начало, оно ж как фундамент здания, на этом все держится и переделывать потом всё заново - желания мало.

Раз наверное с десяток я клонировал репозиторий с гитлаба и разворачивал его на своём компьютере, сравнивал, что из всего этого можно удалить а что оставить. Потом понимал, что опять получилось через "одно место", удалял и снова клонировал, и так много раз. Не исключено, что еще не раз так поступлю.

Снял небольшой ролик по развертыванию шаблона и установке первичного приложения django. Возможно, если бы написал сценарий, ролик сократился раза в три (много туплю на видео).

Вот я "развернул" шаблон приложения на моем компе. Страница магазина на экране:

Заготовка (шаблон) будущего интернет-магазина
Заготовка (шаблон) будущего интернет-магазина

Дальше то что?! В башке звенящая пустота!

Куратор сказал - изучай мол swagger-документацию и по ней надо делать бэкэнд... Ясней от этих слов не стало...

-2
-3
-4

Как мне показалось - надо начать с пользователя: отработать вход, выход, регистрация. Потому как сейчас ещё ничего не работает. Попробовал было войти:

-5

Хотя имя пользователя и пароль правильные. Но, если зайти в Django-админку под этими же учетными данными - вход осуществляется без проблем!

-6

Значит с именем пользователя и паролем - всё хорошо. Самое интересное, что после того как я побывал в админке и перешел на главную страницу, я там так же "в системе"

-7

Надо отрабатывать вход через главную страницу...

Вначале вроде бы что-то начал делать, практически осуществил вход. Но в чате курса сказали - всё это фигня, не то. Мол тебе надо по сваггеру делать. Ну да, сразу всё стало понятно, и как я раньше не догадался!?

Так какие же первые действия, после установки всего необходимого?

Первым нужно создать приложение api, в котором будут указаны все необходимые endpoints, отвечающие за обработку пользователей, продуктов, категорий и прочих штукенций, которые будут на нашем сайте.

python manage.py startapp api

В нашем проекте появляется новая папка api, откроем ее и файл urls.py (его я уже создал), на данном этапе только этот файл используется:

-8

В этом файле прописаны все эндпойнты, которые будут в адресной строке после http://127.0.0.1:8000/ и api/, причём http://127.0.0.1:8000/api/profile такого адреса не будет, будет http://127.0.0.1:8000/profile

-9

Я пока смутно понимаю куда делся этот api из адресной строки... магия, не иначе!

В файле urls.py приложения api прописаны 5 функций и один класс, отвечающие за обработку соответствующих событий. Этот файл надо прописать в главном urls.py (у меня это папка backend), плюс добавить управление статическими файлами. Без этого не будет подгружаться аватарка, сайт не будет понимать откуда ее грузить.

-10

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

python manage.py startapp profile_user

В этом приложении первым делом создается профиль пользователя, в котором будут указаны все данные на пользователя. Имя пользователя, имя, отчество, фамилия, телефон, email, адрес аватарки и куда она будет сохраняться.

-11

Вот модель создана, выполняются необходимые миграции:

python manage.py makemigrations

python manage.py migrate

И только после этого переходим к файлу views.py, где будем обрабатывать описанные выше эндпойнты.

Импорты ProfileSerializer и ProfileForm используются в редактировании информации о пользователе, в этой статье это не описано. Так что можно не использовать. Пока что...
Импорты ProfileSerializer и ProfileForm используются в редактировании информации о пользователе, в этой статье это не описано. Так что можно не использовать. Пока что...
-13

Вход, выход, регистрация, смена аватарки работают как надо, а вот редакцию пароля и данных пользователя еще толком не настроил, да и код местами мне не нравится. Надо будет переделать. Так что тут не привожу. Да и вообще, это всё очень сырое, но для того чтобы сдвинуться с мёртвой точки (с чего начать????) достаточно.

Если у кого есть какие-то предложения по улучшению кода, пожалуйста - в комментариях ниже принимаю любую критику и пожелания. Лайк, подписка приветствуются! Я хоть буду понимать что не мне одному это всё надо.