Django REST framework


第1章 簡介

Django rest framework 是一套基於django框架編寫restful風格API的組件

第2章 簡單瞭解下都有哪些特點

2.1serializers(序列化)

就是將複雜的數據結構json化,支持ORM和非ORM數據源的序列化

2.2authentication(身份認證)

快速實現支持auth1auth2的方式的權限驗證

2.3request and response(請求與響應)

擴展了常規的HttpResquestTemplateResponse

2.4viewset and routers(視圖和路由)

第3章 開始一個簡單的項目

3.1創建好Django項目後,修改settings文件

INSTALLED_APPS= [
    
…….
    
'rest_framework',
    
'app',
]


DATABASES = {
    
'default': {
        
'ENGINE''django.db.backends.mysql',
        
'NAME''restful',
        
'USER''root',
        
'PASSWORD''123465',
        
'HOST''local.dev',
        
'PORT''3306',
    
}
}

 

3.2配置urls文件

from django.conf .urls import urlinclude


urlpatterns = [
    path(
'admin/'admin.site.urls),
    
path(r'^test/'include('app.urls')),
]

3.3編寫model層:

from django.dbimport models

# Create your models here.
class Restful(models.Model):
    name= models.CharField(
max_length=30)
    passwd = models.CharField(
max_length=10)

    
def__str__(self):
        
returnself.name

3.4初始化數據庫

python manage.py makemigrations

python manage.py migrate

3.5編寫序列化模塊:

from rest_frameworkimport serializers
from .models import Restful

class RestfulSerializer(serializers.ModelSerializer):
    
classMeta:
        model = Restful
        fields = (
"id""name""passwd")

3.6編寫視圖views.py

from django.shortcutsimport render

# Create your views here.
from rest_framework import statusgenerics
from rest_framework.response import Response
from rest_framework.views import APIView
from .models import Restful
from .serializer import RestfulSerializer


class RestfulView(APIView):
    
defget(selfrequestformat=None):
        data = Restful.objects.all()
        serializer = RestfulSerializer(data
many=True)
        
returnResponse(serializer.data)

    
defpost(selfrequestformat=None):
        serializer = RestfulSerializer(
data=request.data)
        
ifserializer.is_valid():
            serializer.save()
            
returnResponse(serializer.datastatus=status.HTTP_201_CREATED)
        
else:
            
returnResponse(serializer.datastatus=status.HTTP_400_BAD_REQUEST)

3.7編寫app路由urls.py

from django.conf.urlsimport url
from import views

urlpatterns = [
    url(
r'^api/$'views.RestfulView.as_view()name='restful'),
]

3.8進行測試:

插入數據:

  ~ curl -X POST http://localhost:8000/test/api/ -d "name=jiangby&passwd=123456"

{"id":1,"name":"jiangby","passwd":"123456"}%                                                                                                                                    

  ~ curl -X POST http://localhost:8000/test/api/ -d "name=test&passwd=123456"

{"id":2,"name":"test","passwd":"123456"}%

查看數據:

image.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章