摘要:實戰小練習需求獲取指定組下的列表往用戶組添加用戶從組中刪除用戶需求分析獲取指定組下的列表網用戶組添加用戶從組中刪除用戶走界面不行項目結構主路由配置文件開源運維平臺子路由配置文件序列
實戰小練習 需求
users
userGroups
groups
groupUsers
---- get : 獲取指定組下的user列表
-----put:往用戶組添加用戶
-----delete:從組中刪除用戶
permissions
userPermissions
groupPermissions
需求分析groupUsers
---- get : 獲取指定組下的user列表 -----create:網用戶組添加用戶 -----delete:從組中刪除用戶
GET: /api/groupUser/1
POST: r = request.post("http://192.168.33.10:8080/groupUsers/",data=json) 【data={"uid":1,"gid":1}】
DELETE: r = request.delete("http://192.168.33.10:8080/groupUsers/",data=json) 【data={"uid":1,"gid":1}】 #走界面不行
[vagrant@localhost day5]$ tree devops/ devops/ ├── apps │ ├── groupUsers │ │ ├── __init__.py │ │ ├── __pycache__ │ │ ├── router.py │ │ ├── serializers.py │ │ └── views.py │ └── idc │ ├── admin.py │ ├── apps.py │ ├── __init__.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── __init__.py │ │ └── __pycache__ │ ├── models.py │ ├── __pycache__ │ ├── router.py │ ├── serializers.py │ ├── tests.py │ ├── urls.py │ └── views.py ├── devops │ ├── __init__.py │ ├── __pycache__ │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── manage.py
devops/urls.py #主路由配置文件
from django.conf.urls import url,include from rest_framework.routers import DefaultRouter from rest_framework.documentation import include_docs_urls from groupUsers.router import group_users_router from idc.router import idc_router router = DefaultRouter() router.registry.extend(group_users_router.registry) router.registry.extend(idc_router.registry) urlpatterns = [ url(r"^",include(router.urls)), url(r"^docs/", include_docs_urls("開源運維平臺")) ]
devops/groupUsers/router.py #子路由配置文件
from rest_framework.routers import DefaultRouter from .views import GroupUsersViewset group_users_router = DefaultRouter() group_users_router.register(r"group-users",GroupUsersViewset,base_name="group-users")
devops/groupUsers/serializers.py #序列化文件
from rest_framework import serializers from django.contrib.auth.models import Group class GroupSerializer(serializers.Serializer): id = serializers.IntegerField(read_only=True) name = serializers.CharField(required=False) class UserSerializer(serializers.Serializer): id = serializers.IntegerField(read_only=True) username = serializers.CharField(required=False)
devops/groupUsers/views.py #視圖文件
from rest_framework import viewsets,mixins,response,status from django.contrib.auth.models import Group,User from django.http import QueryDict from .serializers import GroupSerializer,UserSerializer class GroupUsersViewset(viewsets.GenericViewSet): serializer_class = UserSerializer def get_group_object(self): # Perform the lookup filtering. lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field #lookup_field=pk,kwargs[lookup_url_kwarg]=傳入的pk值 filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]} return Group.objects.get(**filter_kwargs) def get_queryset(self): groupObj = self.get_group_object() return groupObj.user_set.all() def retrieve(self, request, *args, **kwargs): queryset = self.get_queryset() serializer = self.get_serializer(queryset,many=True) return response.Response(serializer.data) def create(self, request, *args, **kwargs): """ int異常補貨 :param request: :param args: :param kwargs: :return: """ groupObj = Group.objects.get(pk=request.data["gid"]) userObj = User.objects.get(pk=request.data["uid"]) groupObj.user_set.add(userObj) return response.Response(status=status.HTTP_204_NO_CONTENT) def destroy(self,request,*args,**kwargs): groupObj = self.get_group_object() #獲取 userObj = User.objects.get(pk=request.data["uid"]) groupObj.user_set.reverse(userObj) return response.Response(status=status)
其余實例詳細請看:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/42739.html
摘要:為什么要進行前后端分離多端適配開發模式的流行前后端職責不清前后端開發效率問題,前后端相互等待前段一直配合后端,能力受到限制后端開發語言和模板高度耦合,導致開發語言依賴嚴重前后端分離的缺點前后端學習門檻增加數據依賴,導致文檔的重要性增加前段工 DRF 為什么要進行前后端分離 PC,APP,PAD多端適配 SPA開發模式的流行 前后端職責不清 前后端開發效率問題,前后端相互等待 前段一直...
摘要:基礎之二簡介官方文檔安裝與配置安裝配置重新創建數據庫并配置新建一個的將座位,并做配置加入環境變量定義好主備路由主路由項目路由創建名稱地址聯系電話郵箱創建數據庫同步生成數據北京機房北京市酒仙橋北京機房上海機房上海上 DRF基礎之二 簡介 官方文檔 Requirements REST framework requires the following: Python (2.7, 3.4, ...
摘要:后端實現跨域第三方擴展在介紹之前,我先介紹兩個概念同源策略跨域同源策略同源策略是一種約定,是瀏覽器的一種安全機制。這里同源需要協議域名端口三者都相同,否則不能進行訪問。跨域不同源之間的網站通信就是跨域。 在使用django-rest-framework開發項目的時候我們總是避免不了跨域的問題,因為現在大多數的項目都是前后端分離,前后端項目部署在不同的web服務器上,因為我們是后端程序員...
摘要:后端實現跨域第三方擴展在介紹之前,我先介紹兩個概念同源策略跨域同源策略同源策略是一種約定,是瀏覽器的一種安全機制。這里同源需要協議域名端口三者都相同,否則不能進行訪問。跨域不同源之間的網站通信就是跨域。 在使用django-rest-framework開發項目的時候我們總是避免不了跨域的問題,因為現在大多數的項目都是前后端分離,前后端項目部署在不同的web服務器上,因為我們是后端程序員...
摘要:后端實現跨域第三方擴展在介紹之前,我先介紹兩個概念同源策略跨域同源策略同源策略是一種約定,是瀏覽器的一種安全機制。這里同源需要協議域名端口三者都相同,否則不能進行訪問。跨域不同源之間的網站通信就是跨域。 在使用django-rest-framework開發項目的時候我們總是避免不了跨域的問題,因為現在大多數的項目都是前后端分離,前后端項目部署在不同的web服務器上,因為我們是后端程序員...
閱讀 2197·2021-11-25 09:43
閱讀 1165·2021-11-23 09:51
閱讀 3499·2021-11-23 09:51
閱讀 3628·2021-11-22 09:34
閱讀 1543·2021-10-09 09:43
閱讀 2119·2019-08-30 15:53
閱讀 3161·2019-08-30 14:07
閱讀 568·2019-08-28 18:14