小说网站源码是一套文本自动聚合搜索和展示构建系统,设计用于编写由许多较小的文本文档组合而成的小说网站。它使用了受Markdown启发的最小格式语法,并添加了用于注释、概要和交叉引用的元数据语法。它被设计成一个简单的文本编辑器,允许轻松组织文本和注释,使用人类可读的文本文件作为存储,以实现健壮性。

项目存储适用于版本控制软件,也适用于文件同步工具。所有文本都保存为带有元数据头的纯文本文件。核心项目结构存储在一个项目XML文件中,其他元数据主要保存为JSON文件。7

文件:590m.com/f/25127180-498775972-aff6dd(访问密码:551685)

以下内容无关:

-------------------------------------------分割线---------------------------------------------

源码入口:APIView.py文件下的initial方法下的check_permissions

Python
def check_permissions(self, request):
“”"
检查是否应允许该请求。如果请求不被允许,则引发适当的异常。
“”"
for permission in self.get_permissions():
if not permission.has_permission(request, self):
self.permission_denied(
request,
message=getattr(permission, ‘message’, None),
code=getattr(permission, ‘code’, None)
)
权限在get_permissions方法中获取到,源码如下:

Python
def get_permissions(self):
“”"
实例化并返回此视图所需的权限列表。
“”"
return [permission() for permission in self.permission_classes]
permission_classes又等于api_settings.DEFAULT_PERMISSION_CLASSES,所以我们去settings.py文件中查找

Bash
‘DEFAULT_PERMISSION_CLASSES’: [
‘rest_framework.permissions.AllowAny’,
],
我们会发现drf默认的权限是AllowAny,我们去看下源码:

Python
class AllowAny(BasePermission):
“”"
允许任意访问。这不是严格要求的,因为您可以使用空的 permission_classes 列表,但它很有用,因为它使意图更加明确。
“”"

def has_permission(self, request, view):return True

我们可以看到AllowAny继承自BasePermission,然后定义了has_permission方法,返回值为True。

drf为我们提供了4个系统权限认证:

Python

  1. AllowAny
    认证规则全部返回True:return True
    游客与登录用户都有所有权限

  2. IsAuthenticated
    认证规则必须有登录的合法用户:return bool(request.user and request.user.is_authenticated)
    游客没有任何权限,登录用户才有权限

  3. IsAdminUser
    认证规则必须是:return bool(request.user and request.user.is_staff)
    游客没有任何权限,登录用户才有权限

  4. IsAuthenticatedOrReadOnly
    认证规则必须是只读请求或者是合法用户无限制
    return bool(
    request.method in SAFE_METHODS or
    request.user and
    request.user.is_authenticated
    )
    游客只读,合法用户无限制

自定义认证类
创建继承BasePermission的权限类
实现has_permission方法
实现体根据权限规则 确定 有无权限
进行全局或局部配置(一般采用局部配置)
权限规则
满足设置的用户条件,代表有权限,返回True
不满足设置的用户条件,代表有权限,返回False

自定义权限

Python
from django.contrib.auth.models import Group
from rest_framework.permissions import BasePermission

class MyPermissions(BasePermission):
def has_permission(self, request, view):
rule1 = request.method in [‘GET’, ‘OPTIONS’, ‘HEAD’]
group = Group.objects.filter(name=“管理员”).first()
groups = request.user.groups.all()
rule2 = group in groups
rule3 = group and groups
return rule1 or (rule2 and rule3)
以上定义了3条规则

rule1:请求方法是GET、OPTIONS、HEAD游客和用户都可以访问
rule2:当前用户如果有多个分组,其中必须有一个分组是管理员
rule3:管理员分组必须存在,用户必须在分组中
接下里我们定义视图

Python
class TestView(APIView):
permission_classes = [MyPermissions]

def get(self, request, *args, **kwargs):print(request.user)return APIResponse(data_msg="所有用户都可以访问")def post(self, request, *args, **kwargs):print(request.user)return APIResponse(data_msg="只有管理员用户可以访问")

视图中只是添加了permission_classes = [MyPermissions]属与局部配置,也就是自定义的权限只针对此视图,其他视图还是默认的全局配置,如果我们还有其他的关于权限的需求,只需要在自定义的权限类中写逻辑即可

自动采集小说程序源码相关推荐

  1. 轻量级简约的自动采集小说程序源码

    正文: 轻量级简约的自动采集小说程序源码,全程序自动采集​,更新提示:已经更新采集规则. 安装环境: 1.Nginx环境 2.php7.0,mysql 3.宝塔服务器 4.正常的域名 安装教程: 1. ...

  2. 简约风车壁纸自动采集小程序源码

    介绍: 风车壁纸自动采集小程序源码,自动采集,自动更新,无需数据库. 内壁纸资源采自: https://api.zhuti.xiaomi.com; https://at.aliCDN.com; htt ...

  3. ptcms模板自动采集小说系统源码

    介绍: ptcms模板自动采集小说系统源码安装教程: mysql,php5.6 必须安装扩展:ZendGuardLoader 脚本解密 ionCube 脚本解密 fileinfo 通用扩展 opcac ...

  4. 手机壁纸自动采集小程序源码

    介绍: 修改 project.config.json 内的项目文件,然后直接通过微信开发者工具或者 hbuilder 打开即可. 修改轮播图的地址在 appdown/appdown.wxml 里面修改 ...

  5. 自动采集的网站源码-自动采集发布的电影小说新闻网站程序源码

    自动采集网站源码,有不少SEO的同伴们都在找可以自动采集网站源码,但是这种源码真的好吗?首先可以自动采集的网站源码程序,规则也是别人写好的,采集的内容也是别人用过的,对于网站收录肯定不是那么友好.我们 ...

  6. 苹果cms php免费资源,苹果CMS自动采集 X站源码带全部资源PHP - 下载 - 搜珍网

    压缩包 : 苹果CMS自动采集H站源码带全部资源.zip 列表 admin/ admin/admin_conn.php admin/admin_data.php admin/admin_interfa ...

  7. 全自动采集小说模板源码+送7条可用7大采集规则

    程序特色: 1.小说自动采集: 2.小说章节实时更新: 3.采集的小说入库,不受源站影响: 4.高效储存模式,节约服务器空间使用: 程序优点: 1.小说自动推送到百度搜索引擎,加快页面收录: 2.页面 ...

  8. 小说程序源码 自动采集

    介绍 安装教程: 安装宝塔面板一键安装环境 宝塔:www.bt.cn 必装环境:nginx(apache.iis也可),mysql,php5.6,必须安装扩展: ZendGuardLoader 脚本解 ...

  9. 小说视频图片站群采集工具程序源码

    介绍: 本程序为k源程序,仅限测试和研究使用,如果有人使用本人程序做任何非法事情,本人不负任何责任法律责任 特性 : 1.站群 2.k源的 3.自己研究 4.还会更新的 5.支持 小说 视频 图片 6 ...

  10. 微信发卡小程序源码-自动发卡小程序源码-带流量主功能

    简介: 此套源码带流量主功能裂变扩展,让你赚个广告收益. 朋友花300大洋互站买来的,源码没有动,而且测试搭建表现良好! 源码功能: 小程序系统/多种卡密领取模式/流量主: 支持:添加分类丨分类介绍丨 ...

最新文章

  1. 实现ASP.NET MVC3 HtmlHelper 的 RadioButtonList 与CheckBoxList 扩展
  2. ashx是什么文件,如何创建[转]
  3. 计算机网络协议教案,计算机网络实验教案(6)网络协议分析-IP协议3.pdf
  4. Notepad++编写的Verilog文件导入Vivado,中文注释乱码问题
  5. 完成AOP 顶层设计-AopConfig
  6. LiveVideoStackCon讲师热身分享 ( 十三 ) —— Intel QSV技术在FFmpeg中的实现与使用
  7. 代码实现sql编译器_TiDB-Wasm 原理与实现 | Hackathon 优秀项目介绍
  8. JAVA进阶教学之(源码及API文档概述)
  9. CVPR 2020|打脸SOTA!不能忍,谷歌发起图像匹配挑战赛
  10. python读取多个文件夹_如何从python中的文件夹中读取多个NetCDF文件
  11. android elf 加固_APK一键自动化加固脚本
  12. 一键导出所有微信联系人的小工具,搞私域、搞网销客户交接时可能可以用到,【微信通讯录抽水机】
  13. 【数学建模】数据包络分析法
  14. 3d人体智能测试软件,三维人体解剖软件(3dbody)
  15. speedoffice(PPT)如何在幻灯片里面插入表格呢
  16. java会员消费管理系统源码_基于jsp的会员消费商场vip管理系统-JavaEE实现会员消费商场vip管理系统 - java项目源码...
  17. Web前端基础CSS初识学习笔记(8)行高对齐和首行缩进间距
  18. 用Ubuntu20.04开热点
  19. PS制作水火相溶特效文字图片
  20. 小学生机器人编程是学的什么

热门文章

  1. html psd设计图,根据PSD登陆页面设计稿切图制作HTML网页全过程
  2. 切图html 在线,网页制作/前端开发/网页切图/网站切图/PSD转html
  3. STM32 BOOT模式设置
  4. python 高斯烟羽模型_高斯扩散模型-高斯烟羽大气污染扩散模型
  5. 毕设 JAVA北京旅游网系统论文
  6. 模拟电子线路(答案)
  7. 2023年东南大学集成电路设计考研考情与难度、参考书及上岸前辈备考经验
  8. 中国大学MOOC创业基础题库及答案
  9. js+java实现登录滑动图片验证功能
  10. nbu备份win平台oracle,NBU备份ORACLE错