自动采集小说程序源码
小说网站源码是一套文本自动聚合搜索和展示构建系统,设计用于编写由许多较小的文本文档组合而成的小说网站。它使用了受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
AllowAny
认证规则全部返回True:return True
游客与登录用户都有所有权限IsAuthenticated
认证规则必须有登录的合法用户:return bool(request.user and request.user.is_authenticated)
游客没有任何权限,登录用户才有权限IsAdminUser
认证规则必须是:return bool(request.user and request.user.is_staff)
游客没有任何权限,登录用户才有权限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.Nginx环境 2.php7.0,mysql 3.宝塔服务器 4.正常的域名 安装教程: 1. ...
- 简约风车壁纸自动采集小程序源码
介绍: 风车壁纸自动采集小程序源码,自动采集,自动更新,无需数据库. 内壁纸资源采自: https://api.zhuti.xiaomi.com; https://at.aliCDN.com; htt ...
- ptcms模板自动采集小说系统源码
介绍: ptcms模板自动采集小说系统源码安装教程: mysql,php5.6 必须安装扩展:ZendGuardLoader 脚本解密 ionCube 脚本解密 fileinfo 通用扩展 opcac ...
- 手机壁纸自动采集小程序源码
介绍: 修改 project.config.json 内的项目文件,然后直接通过微信开发者工具或者 hbuilder 打开即可. 修改轮播图的地址在 appdown/appdown.wxml 里面修改 ...
- 自动采集的网站源码-自动采集发布的电影小说新闻网站程序源码
自动采集网站源码,有不少SEO的同伴们都在找可以自动采集网站源码,但是这种源码真的好吗?首先可以自动采集的网站源码程序,规则也是别人写好的,采集的内容也是别人用过的,对于网站收录肯定不是那么友好.我们 ...
- 苹果cms php免费资源,苹果CMS自动采集 X站源码带全部资源PHP - 下载 - 搜珍网
压缩包 : 苹果CMS自动采集H站源码带全部资源.zip 列表 admin/ admin/admin_conn.php admin/admin_data.php admin/admin_interfa ...
- 全自动采集小说模板源码+送7条可用7大采集规则
程序特色: 1.小说自动采集: 2.小说章节实时更新: 3.采集的小说入库,不受源站影响: 4.高效储存模式,节约服务器空间使用: 程序优点: 1.小说自动推送到百度搜索引擎,加快页面收录: 2.页面 ...
- 小说程序源码 自动采集
介绍 安装教程: 安装宝塔面板一键安装环境 宝塔:www.bt.cn 必装环境:nginx(apache.iis也可),mysql,php5.6,必须安装扩展: ZendGuardLoader 脚本解 ...
- 小说视频图片站群采集工具程序源码
介绍: 本程序为k源程序,仅限测试和研究使用,如果有人使用本人程序做任何非法事情,本人不负任何责任法律责任 特性 : 1.站群 2.k源的 3.自己研究 4.还会更新的 5.支持 小说 视频 图片 6 ...
- 微信发卡小程序源码-自动发卡小程序源码-带流量主功能
简介: 此套源码带流量主功能裂变扩展,让你赚个广告收益. 朋友花300大洋互站买来的,源码没有动,而且测试搭建表现良好! 源码功能: 小程序系统/多种卡密领取模式/流量主: 支持:添加分类丨分类介绍丨 ...
最新文章
- 实现ASP.NET MVC3 HtmlHelper 的 RadioButtonList 与CheckBoxList 扩展
- ashx是什么文件,如何创建[转]
- 计算机网络协议教案,计算机网络实验教案(6)网络协议分析-IP协议3.pdf
- Notepad++编写的Verilog文件导入Vivado,中文注释乱码问题
- 完成AOP 顶层设计-AopConfig
- LiveVideoStackCon讲师热身分享 ( 十三 ) —— Intel QSV技术在FFmpeg中的实现与使用
- 代码实现sql编译器_TiDB-Wasm 原理与实现 | Hackathon 优秀项目介绍
- JAVA进阶教学之(源码及API文档概述)
- CVPR 2020|打脸SOTA!不能忍,谷歌发起图像匹配挑战赛
- python读取多个文件夹_如何从python中的文件夹中读取多个NetCDF文件
- android elf 加固_APK一键自动化加固脚本
- 一键导出所有微信联系人的小工具,搞私域、搞网销客户交接时可能可以用到,【微信通讯录抽水机】
- 【数学建模】数据包络分析法
- 3d人体智能测试软件,三维人体解剖软件(3dbody)
- speedoffice(PPT)如何在幻灯片里面插入表格呢
- java会员消费管理系统源码_基于jsp的会员消费商场vip管理系统-JavaEE实现会员消费商场vip管理系统 - java项目源码...
- Web前端基础CSS初识学习笔记(8)行高对齐和首行缩进间距
- 用Ubuntu20.04开热点
- PS制作水火相溶特效文字图片
- 小学生机器人编程是学的什么
热门文章
- html psd设计图,根据PSD登陆页面设计稿切图制作HTML网页全过程
- 切图html 在线,网页制作/前端开发/网页切图/网站切图/PSD转html
- STM32 BOOT模式设置
- python 高斯烟羽模型_高斯扩散模型-高斯烟羽大气污染扩散模型
- 毕设 JAVA北京旅游网系统论文
- 模拟电子线路(答案)
- 2023年东南大学集成电路设计考研考情与难度、参考书及上岸前辈备考经验
- 中国大学MOOC创业基础题库及答案
- js+java实现登录滑动图片验证功能
- nbu备份win平台oracle,NBU备份ORACLE错