Я написал 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/articles/582236/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *