zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Python 读取二进制、HTML 、XML 格式存储的 Excel 文件
    ios自动将长数字(7位)转成电话号码
    前端常见手撕源码
    在微信里及QQ浏览器里ios短信回填vue方法取不到值,去除黄色背景
    js添加css到head中
    WEB 基础认证(BasicAuth)
    Word如何插入PDF格式矢量图片
    【解决】MATLAB中报错:无法将双精度值 0.0401495 转换为句柄
    【解决】Word中插入图片后变模糊
    使用SuperSocket开发联网斗地主(三):抢地主
  • 原文地址:https://www.cnblogs.com/yftzw/p/9397009.html
Copyright © 2011-2022 走看看