Меня зовут Абденассер, и сегодня я покажу, как пользоваться небольшой scaffold-библиотекой для создания готовых к использованию полнофункциональных REST API на Django за секунды из командной строки, которую я разработал на прошлой неделе.
Начнем.
Настройка среды Django выходит за рамки этой статьи, но я уверен, что в интернете есть множество руководств, которые помогут вам это сделать.
В двух словах, вот то, что мы собираемся сделать в три этапа:
Создать проект Django;
Поставить rest-фреймворк Django и
dr_scaffold
;Собрать API blog со статьями и авторами.
Создаем проект 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-файла или качественного источника.
>> РЕГИСТРАЦИЯ