十一、Drf通过minix混合类实现 NB版增删改查

十一、通过minix混合类实现 NB版增删改查

#视图类
from rest_framework.generics import GenericAPIView
from rest_framework.mixins import ListModelMixin,CreateModelMixin,RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin
"""
ListModelMixin:     列出多条记录
CreateModelMixin:  增加记录
RetrieveModelMixin:列出单条记录
UpdateModelMixin:  修改记录
DestroyModelMixin: 删除记录  
"""
class Stu
Django是一个流行的Python Web框架,它提供了一套内置的管理系统(Django admin)用于管理应用的数据,包括菜单。如果你想通过API控制菜单的增删改查操作,并集成用户权限,可以按照以下步骤操作: 1. **创建模型**: 首先,在`models.py`文件中定义一个菜单模型,例如包含字段如`title`、`url`、`permissions`等。 ```python from django.db import models from django.contrib.auth.models import Permission class Menu(models.Model): title = models.CharField(max_length=100) url = models.URLField() permissions = models.ManyToManyField(Permission, blank=True) ``` 2. **创建序列化器**: 使用Django Rest Framework (DRF)创建序列化器(Serializer),以便将数据数据转换成API请求和响应。 ```python from rest_framework import serializers from .models import Menu class MenuSerializer(serializers.ModelSerializer): class Meta: model = Menu fields = '__all__' ``` 3. **定义视图集(ViewSet)**: 创建一个DRF视图集(ViewSet),处理菜单的CRUD操作。这里你可以使用`ModelViewSet`作为基础,并加入权限验证。 ```python from rest_framework import viewsets, permissions from .serializers import MenuSerializer from .models import Menu class MenuViewSet(viewsets.ModelViewSet): queryset = Menu.objects.all() serializer_class = MenuSerializer permission_classes = [permissions.IsAdminUser] # 使用管理员权限 ``` 4. **配置路由**: 在`urls.py`中设置URL路径,并将其与视图集关联起来。 ```python from django.urls import path, include from rest_framework.routers import DefaultRouter from .views import MenuViewSet router = DefaultRouter() router.register(r'menus', MenuViewSet) urlpatterns = [ path('', include(router.urls)), ] ``` 5. **添加权限**: 如果需要更细粒度的权限控制,可以在视图集中自定义权限检查逻辑,或者使用第三方库如django-guardian。 现在,你可以使用似`POST /menus/`, `GET /menus/{id}`, `PUT /menus/{id}`, 和 `DELETE /menus/{id}`这样的URL来对菜单进行增删改查操作,同时只有拥有足够权限的用户才能执行相应的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暮毅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值