Я создам простой API используя Django Rest framework. Допустим у нас есть уже готовый проект на Django и нам необходимо добавить API. Запускаем установку пакета rest framework используя команду pip:
pip install djangorestframework
Для тестирования я добавлю новое приложение article
python manage.py startapp article
Добавим код в модель:
# название_проекта/article/models.py
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
content2 = models.TextField()
Добавим приложение article и rest_framework в наш проект:
# название_проекта/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'article.apps.ArticleConfig',
]
Запустим команду создания миграции для приложения article:
#создаем миграцию в командной строке python manage.py makemigrations article #запускаем миграцию всего проекта python manage.py migrate
Создадим новый файл serializers.py в папке приложения:
# название_проекта/article/serializers.py
from .models import Article
from rest_framework import serializers
class ArticleSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Article
fields = ['title', 'content', 'content2']
Добавим код представления нашему приложению:
# название_проекта/article/views.py
from .models import Article
from rest_framework import generics
from .serializers import ArticleSerializer
class ArticleList(generics.ListCreateAPIView):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
Пропишем пути(urls):
# название_проекта/article/urls.py необходимо создать файл
from django.urls import include, path
from .views import ArticleList
urlpatterns = [
path('article/', ArticleList.as_view()),
]
Добавим url в проект:
# название_проекта/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('article.urls')),
]
Добавляем наше приложение в админку:
# название_проекта/article/admin.py from django.contrib import admin from .models import Article admin.site.register(Article)
Запускаем наш проект. Добавляем пару статей через админку:
python manage.py runserver
API доступно по адресу http://127.0.0.1:8000/api/article/

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