Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Сегодня очень многие backend разработчики стали писать именно rest api.
Почему же так? Чем не устраивает обычный django?
у Ответ тут у каждого свой. Но мне например нравится больше писать rest api, так как rest более гибкий и позволяет приложениям обмениваться данными в нескольких форматах. Поэтому я бы хотел поделиться как начать писать backend на Django Rest Framework (DRF).
Итак, с чего же начать? Начнем пожалуй с того, что определимся с тем, что же мы будем делать. Предлагаю сделать backend для сайта с ... Даже не знаю какую идею выбрать (Да, знаю. Так и хочется сказать, что зачем что-то придумывать, ты же пишешь backend, все равно здесь можно как-то абстрактно называть модели и потом придумать уже фронт под него, но я хочу в будущем еще и frontend написать, а потому идею надо придумать). Сделать новостной сайт, ну это слишком скучно. О придумал, так уж и быть, пусть сайт будет немного скучный - это будет что-то типа соц. сети. Но в ней мы реализуем много чего прикольного.
Чего же я именно хочу:
Авторизация и Регистрация - ну так естессна :-)
Профиль с настройками и всем, всем, всем необходимым - ну вроде очевидно :-)
Постики (обязательно с фоточками, видосиками и gif-ками - как же без них)
Опросники и голосовалки - нуууу а почему бы и нет)
Чатики - даааа, это было бы интересно
Возможность оплачивать какие-то платные вещи - посты там, подписки ну и может прикрутим какой-нибудь маркет
Видеочатик - тоже что-то прикольное, надо бы попробовать
Нуууууу... Думаю пока что хватит. Вот такое у нас чудовище Франкенштейна получится.)))
Если думаешь, что это как-то сложно для туториала?
Ну возможно так и есть, однако я буду стараться максимально подробно останавливаться на всех моментах разработки и подробно рассказывать что и как я делаю. И да, я буду рассказывать все по нарастанию сложности (ну по крайней мере я буду стараться так делать) Но как бы я писал тут, как бы ты не читал или не смотрел какие-нибудь видео уроки, запомни (!!!): если сам не будешь прогать, то и смысла читать особого нет. Увы, но это так. (НУ И ТУТ ДОЛЖЕН РАССКАЗАТЬ ПОЧЕМУ ТАК, НО МНЕ ЛЕНЬ) В общем поверь в то, что это так и все)))
Глава 1. Postgres
Увы, но без настроек никак не обойтись. Для начала обращаю внимание, а именно, я буду использовать операционную систему(ОС) Linux, поэтому если у вас Windows, то либо учите или спрашивайте у GPT как мои команды пишутся в Windows PowerShell, либо качайте WSL.
Итак, для начала обновим все пакеты Linux. sudo apt update - в студию:
$ sudo apt update
Ну круто, теперь определимся с базой данных.
Чавось? Зачем?
Ну вот так вот. Прикинь ты имеешь много постиков с видосиками и ты решил выложить свой сайт в сеть. Как левые челы смогут понять, что постики есть и увидеть их? Так вот их нужно где-то хранить и для этого мы используем базу данных (БД).
Предлагаю не тянуть кота за ... хвост и просто возьмем Postgres (https://www.postgresql.org/)
Почему именно ее?
Ну я с ней много работал, да и в целом она классная, если интересно по подробнее почему, то иди воооот сюда. Итак, давайте ее ставить.
$ sudo apt install postgresql postgresql-contrib
А вот так :-)
Ну вот скачали postgres, давайте создадим себе пользователя и базу данных для него.
$ sudo -i -u postgres
И вот мы вошли в учетную запись postgres на нашем сервере (компе). Но нам нужно попасть в терминал:
$ psql
И вот мы в терминале, круто. Теперь пошли создавать юзера:
CREATE USER simple_user WITH PASSWORD 'simple_password';
Если все супер, то ты увидишь тип такого. Если что, вместо simple_user и simple_password можно свои какие-то данные ввести.
Ну а теперь давайте создадим базу данных:
CREATE DATABASE simple_db WITH OWNER = simple_user;
Супер, база данных есть. Ну осталось добавить прав пользователю, что бы могли тестить и в целом пусть будет крутым:
ALTER USER simple_user SUPERUSER;
ALTER USER simple_user CREATEDB;
Глава 2. Django
Фуф, как-то так. Теперь погнали поставим Django. Для этого введем следующее:
sudo apt install python3-django
Ждем и получаем Django на сервере (компе). Ок, теперь наконец-то давайте создадим проект:
django-admin startproject simple_site
И вот, что же мы тут видим:
А вот что в файле simple_site:
Глава 3. Venv
Ну что ж, начнем писать? А вот нет, нужно еще одно - это поставить виртуальное окружение.
Зачем оно нам?
Все очень просто. Представь ты пишешь параллельно 3 проекта. На одном используется Python3.8, а на другом Python3.10. И ты собираешься постоянно переустанавливать версию? Нет конечно, это сложно. Для таких ситуаций придумали виртуальное окружение. Это типа когда у тебя создается кусок в памяти, где и будет крутиться вся наша задача. Ну чтож, ставим:
$ sudo apt install -y python3-venv
Ну а теперь создадим в папке с кодом:
$ python3 -m venv venv
Вместо второго venv можно ставить свои названия, но все обычно называют venv.
Ну и последнее, активируем окружение:
source venv/bin/activate
Ну а для дезактивации используем следующее:
$ source venv/bin/deactivate
Ну вот мы и закончили мервую часть туториала. Фуф, вроде бы я поставил все то, что нам нужно. Всем удачи и до встречи :-)