Django基础教程(116)Django认证和权限之给API添加只读用户字段:Django安全卫士:给你的API打造一个“只能看,不能摸”的只读大神!

Django API只读权限实战

兄弟们,姐妹们,各位奋战在代码一线的“码农”朋友们,今天咱们不聊风花雪月,就来唠一唠咱们Django项目里那个让人又爱又恨的“安全”问题。

你有没有过这样的噩梦时刻?

  • 你辛辛苦苦写好了用户注册、登录的API,结果隔壁部门的同事跑来跟你说:“哎,给我个账号呗,我想看看数据长啥样。”
  • 你心怀忐忑地给了,下一秒就收到报警:数据库里莫名其妙多了一万条名叫“测试”的用户记录!
  • 或者,你想给老板一个后台数据查看权限,但又怕他老人家一个手滑,把核心订单表给DELETED了……

内心OS: “我滴个乖乖,我这API简直是在‘裸奔’啊!”

别慌!今天,我就是来给你送“安全小马甲”的。我们将一起深入Django REST Framework (DRF) 的腹地,施展“权限”魔法,专门为这类“围观群众”创建一个只能读取数据,但绝不能增、删、改的“只读用户”

第一幕:舞台搭建——咱们的简易“图书档案馆”

在开始施展魔法之前,我们先得有个“魔法实验室”。假设我们正在构建一个线上图书馆的API,核心模型就是Book(图书)。

1. 创建模型(models.py

from django.db import models
from django.contrib.auth.models import User

# 我们的核心模型:图书
class Book(models.Model):
    title = models.CharField(max_length=200, verbose_name="书名")
    author = models.CharField(max_length=100, verbose_name="作者")
    published_date = models.DateField(verbose_name="出版日期")
    isbn = models.CharField(max_length=13, unique=True, verbose_name="ISBN号")
    
    def __str__(self):
        return self.title

2. 创建序列化器(serializers.py

序列化器就像是数据的“翻译官”,负责把模型对象转换成JSON,或者反过来。

from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = '__all__'  # 暴露所有字段

3. 创建视图集(views.py

视图集是DRF的“魔法核心”,它帮我们自动生成一堆API端点(增删改查)。

from rest_framework import viewsets
from .models import Book
from .serializers import BookSerializer

class BookViewSet(viewsets.ModelViewSet):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

值引力

持续创作,多谢支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值