Я создам простой 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/
Добавить комментарий