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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру 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/)

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

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

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

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

Источник: https://habr.com/ru/articles/755898/


Интересные статьи

Интересные статьи

Рассмотрим готовые решения для использования markdown совместно с Django.
Все персонажи и события являются вымышленными. Любое совпадение с реально живущими или когда-либо жившими людьми случайно.- Сашуля, тут никому ничего не надо. Люди просто хотят получать баблишко и нич...
Привет, я Дарья Двоеглазова, менеджер продукта в Quadcode. В своей предыдущей статье я рассказала об инструментах и методах, которые использовала для планирования и тайм-менеджмента последние 3,5 года...
Всем привет. Сегодня речь пойдет не совсем о разработке. Я даже не знаю с чего начать. Это просто крик души.Вы когда-нибудь пользовались звонками в телеграм? Это в целом ...
В этой части статьи мы перейдем к самому интересному - будем разбирать музыкальный модуль Dizzy IV по винтиками и воспроизводить мелодию сначала на Windows, а потом и на ...