понедельник, 21 декабря 2020 г.

Django rest first application, Show All Posts ListApiView. Part 2



open project folder
cd django_3_ninja


activate
pipenv shell


open folder
cd ninja_django


create app
python manage.py startapp blog


settings.py
INSTALLED_APPS = [
    'blog',
]



blog/models.py
from django.db import models

class Post(models.Model):
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
    title = models.CharField(max_length=200)
    text = models.CharField(max_length=500)

    def __str__(self):
        return self.title



blog/views.py
from .serializers import (
    ListSerializer,
)

from rest_framework.generics import (
    ListAPIView,
)

from blog.models import Post

class PostListAPIView(ListAPIView):
    serializer_class = ListSerializer
    queryset = Post.objects.all()



blog/serializers.py
from rest_framework.serializers import (
    ModelSerializer,
)
from blog.models import Post

class ListSerializer(ModelSerializer):
    class Meta:
        model = Post
        fields = [
            'id',
            'title',
            'text',
        ]



ninja_django/urls.py
from django.contrib import admin
from django.urls import path
from django.conf.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/post/', include(('blog.urls', 'blog'), namespace='blog')),
]


blog/urls.py
from blog import views
from django.urls import path

urlpatterns = [
    path('list/', views.PostListAPIView.as_view(), name='blog-list'),
]


install djangorestframework
pipenv install djangorestframework


settings.py
INSTALLED_APPS = [
    'rest_framework',
]


blog/admin.py
from django.contrib import admin
from blog.models import Post

admin.site.register(Post)


create db
python manage.py makemigrations;
python manage.py migrate;


start server
python manage.py runserver;

create admin user
python manage.py createsuperuser

create post
http://localhost:8000/admin

open link
http://localhost:8000/api/v1/post/list

github
https://github.com/manas-anarov/django_3_ninja/tree/2_part

Комментариев нет:

Отправить комментарий