# 需要安装的包
- django
- djangorestframework
- django-cors-headers
# 实例演示
# 创建项目和表模型
django-admin startproject backends | |
python manage.py startapp lyb | |
python manage.py runserver |
注册 app
表模型
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" # 表格的名字 |
创建表
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__" # 序列化所有字段 |
在 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 |
配置跨域
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 |