restframework-apiview
RESTful:(面向资源架构(ROA:Resource Oriented Architecture))
1. 一切皆资源
restful:
get 查看
books ------------>
post 添加
get 查看
book/1/-------------
delete 删除
put 更新
没有任何动词 不同的请求代表不同的功能
2.
GET :从服务器取出资源(一项或多项)
POST :在服务器新建一个资源
PUT :在服务器更新资源(客户端提供改变后的完整资源)
PATCH :在服务器更新资源(客户端提供改变的属性)
DELETE :从服务器删除资源
首先下载 restframework
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple djangorestframework
下载好后 首先在配置里加:

然后在view里导入
from rest_framework.views import APIView
class Home(APIView):
def get(self,request):
pass
def post(self,requset):
pass
在model先创建个表结构
from django.db import models
# Create your models here.
class Author(models.Model):
nid = models.AutoField(primary_key=True)
name=models.CharField( max_length=32)
age=models.IntegerField()
# 与AuthorDetail建立一对一的关系
authorDetail=models.OneToOneField(to="AuthorDetail",on_delete=models.CASCADE)
class AuthorDetail(models.Model):
nid = models.AutoField(primary_key=True)
birthday=models.DateField()
telephone=models.BigIntegerField()
addr=models.CharField( max_length=64)
class Publish(models.Model):
nid = models.AutoField(primary_key=True)
name=models.CharField( max_length=32)
city=models.CharField( max_length=32)
email=models.EmailField()
class Book(models.Model):
nid = models.AutoField(primary_key=True)
title = models.CharField( max_length=32)
publishDate=models.DateField()
price=models.DecimalField(max_digits=5,decimal_places=2)
# 与Publish建立一对多的关系,外键字段建立在多的一方
publish=models.ForeignKey(to="Publish",to_field="nid",on_delete=models.CASCADE)
# 与Author表建立多对多的关系,ManyToManyField可以建在两个模型中的任意一个,自动创建第三张表
authors=models.ManyToManyField(to='Author',)
创建好表后 添加两条数据
然后创建一个接口
from app01.models import Publish
from django.core.serializers import serialize
from rest_framework.views import APIView
class Home(APIView):
def get(self,request):
publish_list = Publish.objects.all()
ret = serialize("json", publish_list)
return HttpResponse(ret)
def post(self,requset):
pass
下面我们来看一下 APLView的源码 它的执行过程又是如何。

继承的是我们的View

因为APLView也有as_view所以我们用它的as_view



浙公网安备 33010602011771号