笔记: Django Rest Framework 版本使用

暂时用不到这个restframework 里面的版本version, 所以我们写类直接继承人家已经写好的类,如下:

1, views.py视图

from django.shortcuts import render
from django.http import HttpResponse
from rest_framework.views import APIView
from rest_framework.versioning import BaseVersioning,URLPathVersioning #这里引入

class VersionView(APIView):

    versioning_class = URLPathVersioning #这里使用,注意这个不是类的列表了,就是一个,.

    def get(self,request, *args, **kwargs):

        print(request.version) #获取版本

        print(request.versioning_scheme) #获取版本的对象

        url = request.versioning_scheme.reverse(viewname='xxx', request=request) #用来反向生成url
        print(url) # 根据前面的url.py中是设置,这里生成: http://127.0.0.1:8000/api/v1/

        return HttpResponse('hello world')

2, urls.py 中如下:

from django.contrib import admin
from django.urls import re_path, path
from django.conf.urls import url, include
from api import views

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^api/(?P[v1|v2]+)/$', views.VersionView.as_view(), name='xxx')
]

你可能感兴趣的:(django)