Уроки по программированию

Простой пример Django REST framework

Я создам простой 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/

Комментарии к статье

  • Оставьте первый комментарий - автор старался

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

Ваш адрес email не будет опубликован.