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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM