# 需要安装的包

  • django
  • djangorestframework
  • django-cors-headers

# 实例演示

# 创建项目和表模型

django-admin startproject backends
python manage.py startapp lyb
python manage.py runserver

注册 app

1662994746973

表模型

from django.db import models
# Create your models here.
class Lyb(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    content = models.TextField()
    posttime = models.DateTimeField(auto_now_add=True)
    class Meta:
        db_table = "d_lyb"  # 表格的名字

1662994809836

创建表

python manage.py makemigrations
python manage.py migrate

参考官方文档

定义序列化器

在 lyb 文件夹下创建 serializers.py 文件,

from rest_framework import serializers
from .models import Lyb
class LybSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Lyb  # 需要序列化的模型
        fields = "__all__"  # 序列化所有字段

1662994967104

在 lyb 的 view.py 文件下创建视图

from django.shortcuts import render
from rest_framework import viewsets
from .models import Lyb
from .serializers import LybSerializer
from django.shortcuts import HttpResponse
# Create your views here.
class LybViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows users to be viewed or edited.
    """
    queryset = Lyb.objects.all().order_by('-posttime')
    serializer_class = LybSerializer

1662995063999

配置跨域

https://blog.csdn.net/zbx2010/article/details/107481686

参考到上面的第一点就行了

setting.py

INSTALLED_APPS = [
    ...
    'corsheaders',
    ...
]
MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',	# 放最前面
    ...
]

CORS_ORIGIN_ALLOW_ALL: 添加允许执行跨站点请求的主机

# 如果为 True,则将不使用白名单,并且将接受所有来源。默认为 False
CORS_ORIGIN_ALLOW_ALL = True