Я написал Scaffold-библиотеку Django, которая создает полнофункциональный REST API за секунды

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

Меня зовут Абденассер, и сегодня я покажу, как пользоваться небольшой scaffold-библиотекой для создания готовых к использованию полнофункциональных REST API на Django за секунды из командной строки, которую я разработал на прошлой неделе.

Начнем.

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

В двух словах, вот то, что мы собираемся сделать в три этапа:

  • Создать проект Django;

  • Поставить rest-фреймворк Django и dr_scaffold;

  • Собрать API blog со статьями и авторами.

  1. Создаем проект Django

Давайте создадим проект Django с помощью команды django-admin:

$ django-admin startproject myApi

Эта команда делает то же самое, что и python manage.py startproject myApi, с той лишь разницей, что ей для выполнения не нужна среда Python.

Давайте перейдем к нашему новому проекту с помощью cd myApi, и создадим виртуальную среду с помощью:

$ python3 -m virtualenv env

Наконец, давайте активируем виртуальную среду:

$ source env/bin/activate

2.Ставим rest-фреймворк Django и dr_scaffold

Давайте установим пакеты djangorestframework и dr-scaffold через pip, как показано ниже:

$ pip install djangorestframework
$ pip install dr-scaffold

Теперь добавим эти пакеты в INSTALLED_APPS нашего проекта внутри myApi/settings.py:

INSTALLED_APPS = [
    …,
    ‘rest_framework’,
    ‘dr_scaffold’
]

Давайте добавим настройки CORE_FOLDER и API_FOLDER в myApi/settings.py (в рамках упрощения, просто оставим их пустыми):

CORE_FOLDER = “” # you can leave them empty
API_FOLDER = “” # or set them to be the same

3. Собираем API blog со статьями и авторами

В нашем api будет два основных ресурса: Article и Author. Начнем с Author:

$ python manage.py dr_scaffold blog Author name:charfield
???? Your RESTful Author api resource is ready ????

Эта команда создаст папку с models.py, admin.py, views.py, serializers.py, urls.py, и во всех них будет необходимый код для ресурса Author.

А теперь для ресурса Article:

$ python manage.py dr_scaffold blog Post body:textfield author:foreignkey:Author
???? Your RESTful Post api resource is ready ????

Эта команда сделает нечто аналогичное, но вдобавок добавит связь с ресурсом Author через поле foreignkey.

Чтобы сгенерировать таблицы базы данных, давайте добавим наш blog к INSTALLED_APPS в myApi/settings.py:

INSTALLED_APPS = [
    …,
    ‘rest_framework’,
    ‘dr_scaffold’,
    ‘blog’
]

Давайте выполним эти команды, чтобы создать миграции и мигрировать базу данных:

$ python manage.py makemigrations
$ python manage.py migrate

Наконец, добавим blog в urlpatterns в myApi/urls.py:

urlpatterns = [
    …,
    path(“blog/”, include(“blog.urls”)),
]

Не забудьте импортировать include в urls.py проекта:

from django.conf.urls import include

В конце концов у вас в urls.py будет нечто подобное:

from django.conf.urls import include #our added import
from django.contrib import admin
from django.urls import path
urlpatterns = [
    path(‘admin/’, admin.site.urls),
    path(“blog/”, include(“blog.urls”)), #our added blog path
]

Теперь, когда все готово, давайте выполним python manage.py runserver и перейдем к http://127.0.0.1:8000/blog/, чтобы увидеть итоговое REST blog API. А еще вы можете создать суперпользователя и перейти на http://127.0.0.1:8000/admin, чтобы увидеть панель администратора.

Не забудьте поставить звездочку https://github.com/Abdenasser/dr_scaffold на GitHub, если вам понравился проект.


Материал подготовлен в рамках курса «Web-разработчик на Python».

Всех желающих приглашаем на бесплатный двухдневный интенсив «Валидация flac-файлов». На интенсиве мы с вами наконец-то научимся читать flac-файлы, вычислять метрики их качества и заодно делать выводы об их происхождении: из mp3-файла или качественного источника.
>> РЕГИСТРАЦИЯ

Источник: https://habr.com/ru/company/otus/blog/582236/


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

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

Пока я работал на заводах, мир 1С сильно изменился. А мне ничего не сказали. Поэтому я, вернувшись в мир 1С, продолжил пользоваться старой терминологией и, в частности, устаревшим классиф...
Задача: Разработать мок для проверки асинхронного обмена сообщениями с внешней системой.Как пример, рассмотрим некий кейс проверки валидности промокода внешней системой. По шагам:1) ...
У специалистов по обработке и анализу данных есть множество средств для создания классификационных моделей. Один из самых популярных и надёжных методов разработки таких моделей заключается в испо...
Вам приходилось сталкиваться с ситуацией, когда сайт или портал Битрикс24 недоступен, потому что на диске неожиданно закончилось место? Да, последний бэкап съел все место на диске в самый неподходящий...
В «1С-Битрикс» считают: современный интернет-магазин должен быть визуально привлекательным, адаптированным для просмотра с мобильных устройств и максимально персонализированным с помощью технологии Бо...