创建virtual环境 创建app
mkdir drf_learn
cd drf_learn
virtualenv venv
source venv/bin/activate
pip list
pip install --upgrade pip
pip install django
pip install djangorestframework
pip install -U black
pip list
django-admin startproject mysite .
python manage.py startapp mydrf
引入restframework和app
创建model
class Book(models.Model):
created = models.DateTimeField(auto_now_add=True)
title = models.CharField(max_length=100, blank=True, default="")
code = models.TextField()
linenos = models.BooleanField(default=False)
class Meta:
ordering = ["created"]
python manage.py makemigrations mydrf
python manage.py migrate
python manage.py runserver
修改settings.py 文件
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10
}
创建序列化类
# serializers.py
from rest_framework import serializers
from mydrf.models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = "__all__"
创建viewsets
from rest_framework import viewsets
from mydrf.models import Book
from mydrf.serializers import BookSerializer
# Create your views here.
class BookViewSets(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
创建路由
from django.contrib import admin
from django.urls import include, path
from mydrf import views
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r"books", views.BookViewSets, basename="books")
urlpatterns = [
path("admin/", admin.site.urls),
path("", include(router.urls)),
]
测试成功的截图