国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Django基礎(chǔ)之(十二) DRF綜合小練習(xí)

lemon / 1173人閱讀

摘要:實(shí)戰(zhàn)小練習(xí)需求獲取指定組下的列表往用戶組添加用戶從組中刪除用戶需求分析獲取指定組下的列表網(wǎng)用戶組添加用戶從組中刪除用戶走界面不行項(xiàng)目結(jié)構(gòu)主路由配置文件開源運(yùn)維平臺(tái)子路由配置文件序列

實(shí)戰(zhàn)小練習(xí) 需求

users

userGroups

groups

groupUsers
---- get : 獲取指定組下的user列表
-----put:往用戶組添加用戶
-----delete:從組中刪除用戶

permissions

userPermissions

groupPermissions

需求分析

groupUsers

  ---- get : 獲取指定組下的user列表
  -----create:網(wǎng)用戶組添加用戶
  -----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}】 #走界面不行

項(xiàng)目結(jié)構(gòu)
[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("開源運(yùn)維平臺(tái)"))
]

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異常補(bǔ)貨
        :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)

其余實(shí)例詳細(xì)請(qǐng)看:

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/42739.html

相關(guān)文章

  • Django 基礎(chǔ)(九)drf介紹.md

    摘要:為什么要進(jìn)行前后端分離多端適配開發(fā)模式的流行前后端職責(zé)不清前后端開發(fā)效率問題,前后端相互等待前段一直配合后端,能力受到限制后端開發(fā)語(yǔ)言和模板高度耦合,導(dǎo)致開發(fā)語(yǔ)言依賴嚴(yán)重前后端分離的缺點(diǎn)前后端學(xué)習(xí)門檻增加數(shù)據(jù)依賴,導(dǎo)致文檔的重要性增加前段工 DRF 為什么要進(jìn)行前后端分離 PC,APP,PAD多端適配 SPA開發(fā)模式的流行 前后端職責(zé)不清 前后端開發(fā)效率問題,前后端相互等待 前段一直...

    琛h。 評(píng)論0 收藏0
  • Django基礎(chǔ)(十)DRF

    摘要:基礎(chǔ)之二簡(jiǎn)介官方文檔安裝與配置安裝配置重新創(chuàng)建數(shù)據(jù)庫(kù)并配置新建一個(gè)的將座位,并做配置加入環(huán)境變量定義好主備路由主路由項(xiàng)目路由創(chuàng)建名稱地址聯(lián)系電話郵箱創(chuàng)建數(shù)據(jù)庫(kù)同步生成數(shù)據(jù)北京機(jī)房北京市酒仙橋北京機(jī)房上海機(jī)房上海上 DRF基礎(chǔ)之二 簡(jiǎn)介 官方文檔 Requirements REST framework requires the following: Python (2.7, 3.4, ...

    eccozhou 評(píng)論0 收藏0
  • DRF跨域后端解決django-cors-headers

    摘要:后端實(shí)現(xiàn)跨域第三方擴(kuò)展在介紹之前,我先介紹兩個(gè)概念同源策略跨域同源策略同源策略是一種約定,是瀏覽器的一種安全機(jī)制。這里同源需要協(xié)議域名端口三者都相同,否則不能進(jìn)行訪問。跨域不同源之間的網(wǎng)站通信就是跨域。 在使用django-rest-framework開發(fā)項(xiàng)目的時(shí)候我們總是避免不了跨域的問題,因?yàn)楝F(xiàn)在大多數(shù)的項(xiàng)目都是前后端分離,前后端項(xiàng)目部署在不同的web服務(wù)器上,因?yàn)槲覀兪呛蠖顺绦騿T...

    lingdududu 評(píng)論0 收藏0
  • DRF跨域后端解決django-cors-headers

    摘要:后端實(shí)現(xiàn)跨域第三方擴(kuò)展在介紹之前,我先介紹兩個(gè)概念同源策略跨域同源策略同源策略是一種約定,是瀏覽器的一種安全機(jī)制。這里同源需要協(xié)議域名端口三者都相同,否則不能進(jìn)行訪問。跨域不同源之間的網(wǎng)站通信就是跨域。 在使用django-rest-framework開發(fā)項(xiàng)目的時(shí)候我們總是避免不了跨域的問題,因?yàn)楝F(xiàn)在大多數(shù)的項(xiàng)目都是前后端分離,前后端項(xiàng)目部署在不同的web服務(wù)器上,因?yàn)槲覀兪呛蠖顺绦騿T...

    leeon 評(píng)論0 收藏0
  • DRF跨域后端解決django-cors-headers

    摘要:后端實(shí)現(xiàn)跨域第三方擴(kuò)展在介紹之前,我先介紹兩個(gè)概念同源策略跨域同源策略同源策略是一種約定,是瀏覽器的一種安全機(jī)制。這里同源需要協(xié)議域名端口三者都相同,否則不能進(jìn)行訪問。跨域不同源之間的網(wǎng)站通信就是跨域。 在使用django-rest-framework開發(fā)項(xiàng)目的時(shí)候我們總是避免不了跨域的問題,因?yàn)楝F(xiàn)在大多數(shù)的項(xiàng)目都是前后端分離,前后端項(xiàng)目部署在不同的web服務(wù)器上,因?yàn)槲覀兪呛蠖顺绦騿T...

    yanwei 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<