Pull to refresh

Django Rest Framework. Туториал или как легко писать backend. Часть 1

Level of difficultyMedium
Reading time3 min
Views11K

Сегодня очень многие backend разработчики стали писать именно rest api.

Почему же так?

Схемка
Схемка

Ответ тут у каждого свой. Но мне например нравится больше писать 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/)

Postgres
Postgres

Почему именно ее?

Ну я с ней много работал, да и в целом она классная, если интересно по подробнее почему, то иди воооот сюда. Итак, давайте ее ставить.

$ 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;
Создание базы данных
Создание базы данных

Супер, база данных есть. Ну осталось добавить прав пользователю, что бы могли тестить и в целом пусть будет крутым:

Наделяем правами
Наделяем правами

Глава 2. 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

Глава 3. Django

Фуф, как-то так. Теперь погнали поставим Django. Для этого введем следующее:

pip install python3-django

Ждем и получаем Django на сервере (компе). Ок, теперь наконец-то давайте создадим проект:

django-admin startproject simple_site

И вот, что же мы тут видим:

Содержимое
Содержимое

А вот что в каталоге simple_site:

Содержимое
Содержимое

Ну вот мы и закончили первую часть туториала. Фуф, вроде бы я поставил все то, что нам нужно. Всем удачи и до встречи :-)

Tags:
Hubs:
Total votes 9: ↑3 and ↓6-1
Comments12

Articles