溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django使用rest_framework

發布時間:2020-08-06 14:38:14 來源:網絡 閱讀:9393 作者:我是放牛的 欄目:開發技術
  1. 在項目的setting.py文件中 “INSTALLED_APPS“加入 'rest_framework'

  2. INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'rest_framework',
        'app01',
    )

    其中,app01是我創建的一個app


3.在項目的urls.py文件中加入

from django.conf.urls import url, include
from django.contrib.auth.models import User
from rest_framework import routers, serializers, viewsets

#serilizers 數據訪問層:定義API的表現形式;將models變為可序列化的,供其他系統調用;
#viewsets 邏輯處理層:定義展示行為
#routers 和django的url路由系統差不多,自動決定url

class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'is_staff')

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer


router = routers.DefaultRouter()
router.register(r'users', UserViewSet)


urlpatterns = [
    url(r'^', include(router.urls)),
   
]

這樣就可以在首頁匹配到rest-framework的api了





4.自己定義一個blog的api

 在app01的models.py文件中創建Blog類:

 

from django.db import models

# Create your models here.
class Blog(models.Model):
    
    title = models.CharField(max_length = 50 )
    content = models.TextField()

很簡單的一個blog類,只有title和content  2個字段



app01下的api.py文件:

from django.contrib.auth.models import User
from rest_framework import routers, serializers, viewsets
from app01 import models
from rest_framework import response


class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url','username','email','is_staff')
        

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    
class BlogSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = models.Blog
        depth = 1 
        fields = ('url','title','content',)
        
class BlogViewSet(viewsets.ModelViewSet):
    queryset = models.Blog.objects.all()
    serializer_class = BlogSerializer

api.py文件使用了rest-framework將User類和Blog類提供了api接口


修改urls.py文件,讓user和blog2個資源可以api調用:

from django.conf.urls import include, url
from django.contrib import admin
from rest_framework import routers
from app01 import api
from app01 import views

router = routers.DefaultRouter()
router.register(r'users', api.UserViewSet)
router.register(r'blogs', api.BlogViewSet) 




urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
       url(r'^',include(router.urls)),
]


5.一開始blog為空,先開啟django的后臺管理

 在app01下的models.py文件中加入:

from django.contrib import admin

# Register your models here.

from .models import Blog


admin.site.register(Blog)

這樣就可以用后臺管理Blog了,當然,還得創建一個管理員賬號密碼,在項目的目錄下執行:

python manage.py createsuperuser

輸入要創建的賬號密碼即可


6.啟動django程序,輸入

http://127.0.0.1:8000/admin

直接到后臺管理blog

django使用rest_framework

django使用rest_framework

沒有數據,然后添加數據

django使用rest_framework




django使用rest_framework

添加了2條記錄

django使用rest_framework

上面是數據庫的blog表


7.使用api查看blog數據

 django使用rest_framework由于在urls.py中 

 url(r'^',include(router.urls)),

這一句直接讓rest framework處理所有的url,所以首頁就可以看到我們在api.py中定義的user和

直接點鏈接blogs的,

django使用rest_framework

在django中我們沒有創建對數據庫的查詢操作和頁面返回,但是調用rest framework標準的api接口我們就可以直接從數據庫中查詢到數據,增刪改查都是可以的!實現起來如此簡單!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女