Django前后端分离

Home - Django REST framework (django-rest-framework.org)

新建app

例如新建一个books app

$ python3 manage.py startapp books

可能需要修改settings.py文件

INSTALLED_APPS = [
    # ...
    'books.apps.BooksConfig',
]

安装RestFramework

$ pip install django-rest-framework

修改配置文件

修改settings.py文件

INSTALLED_APPS = [
    # ...
    'rest_framework',
]

添加路由

打开settings.py文件同目录下的urls.py文件并修改

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('books/', include('book.urls')),
] 

编写模型类

books/models.py文件中编写Books模型类

from django.db import models

class Books(models.Model):
    name = models.CharField(max_length=30)
    author = models.CharField(max_length=30, blank=True, null=True)

编写序列化器

books目录下创建serializer.py文件,编写BooksSerializer序列化器

from rest_framework import serializers
from .models import Books

class BooksSerializer(serializers.ModelSerializer):
    class Meta:
        model = Books
        fields = '__all__'

编写视图类

books/views.py文件中编写BooksViewSet视图集

# books/views.py
from rest_framework import viewsets

from .models import Books
from .serializer import BooksSerializer

class BooksViewSet(viewsets.ModelViewSet):
    queryset = Books.objects.all()
    serializer_class = BooksSerializer

编写子路由

打开books/urls.py文件并编辑

from django.urls import path, include
from rest_framework.routers import DefaultRouter

from .views import BooksViewSet

router = DefaultRouter()
router.register('books', BooksViewSet)

urlpatterns = [
    path('', include(router.urls)),
]

迁移数据库

$ python manage.py makemigrations
$ python manage.py migrate

打开链接localhost:8000/books/books

处理跨域问题

安装模块

$ pip install django-cors-headers

修改settings.py文件

INSTALLED_APPS = [
    # ...
    'corsheaders',
    # ...
]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    # ...
]

# 跨域配置
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容