RESTful:(面向資源架構(ROA:Resource Oriented Architecture))git
1. 一切皆資源django
restful:
get 查看
books ------------>
post 添加
get 查看
book/1/-------------
delete 刪除
put 更新json
沒有任何動詞 不一樣的請求表明不一樣的功能服務器
2.restful
GET :從服務器取出資源(一項或多項)
POST :在服務器新建一個資源
PUT :在服務器更新資源(客戶端提供改變後的完整資源)
PATCH :在服務器更新資源(客戶端提供改變的屬性)
DELETE :從服務器刪除資源架構
首先下載 restframeworkapp
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple djangorestframework
下載好後 首先在配置里加:post
而後在view裏導入spa
from rest_framework.views import APIView
class Home(APIView):
def get(self,request):
pass
def post(self,requset):
pass
在model先建立個表結構rest
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