使用 Casbin 作为 ThinkPHP 的权限控制中间件

PHP-Casbin 是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型的权限管理。 Think-Casbin 是一个专为 ThinkPHP5.1 定制的 Casbin 的扩展包,使开发者更便捷的在 thinkphp 项目中使用 Casbin。 安装 创建 thinkphp 项目(如果没有): composer create-project topthink/think=5.1.* tp5 在 ThinkPHP 项目里,安装 Think-Casbin 扩展: composer r
分类: 其他 发布时间: 11-19 21:17 阅读次数: 0

subprocess模块&re模块

subprocess模块 import subprocess #导入subprocess模块,该模块的作用为可以通过python代码向终端(cmd)发送命令 while True: #进行循环,可以让用户重复的进行输入 cmd_str = input('请输入终端命令:').strip() #定义变量cmd_str obj = subprocess.Popen( cmd_str, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIP
分类: 其他 发布时间: 11-19 21:17 阅读次数: 0

牛客网PAT练兵场-人口普查

题目地址:https://www.nowcoder.com/pat/6/problem/4054 题解:结构体排序即可 1 /** 2 * Copyright(c) 3 * All rights reserved. 4 * Author : YCute 5 * Date : 2019-11-19-20.13.37 6 * Description : 结构体排序 7 */ 8 #include<iostream> 9 #include<cstdio> 10 #include<c
分类: 其他 发布时间: 11-19 21:17 阅读次数: 0

网络储存服务ip-san搭建

简单的介绍一下SAN(存储区域网络存储区域网络和SAN协议,简称SAN),它是一种高速网络实现计算机与存储系统之间的数据传输。常见的分类是FC-SAN和IP-SAN两种。 FC-SAN通过光纤通道协议转发SCSI协议; IP-SAN通过TCP协议转发SCSI协议,也就是IP地址 存储设备的英文指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列,主要厂商EMC,日立等。 下面配置IP-SAN存储实战 服务名称 服务器地址 服务端:node01 192.168.137.101 客户端:nod
分类: 其他 发布时间: 11-19 21:17 阅读次数: 0

装饰器 迭代器

装饰器 有参装饰器的实现 了解无参装饰器的实现原理后,我们可以再实现一个用来为被装饰对象添加认证功能的装饰器,实现的基本形式如下 def deco(func): def wrapper(*args, **kwargs): #编写基于文件的认证,认证通过则执行res=func(*args, **kwargs),并返回res return wrapper 如果我们想提供多种不同的认证方式以供选择,单从wrapper函数的实现角度改写如下 def deco(func)
分类: 其他 发布时间: 11-19 21:17 阅读次数: 0

Linux的awk命令详解

awk awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,默认以空格为分隔符将每行切片,切开的部分再进行各种分析处理。 awk是行处理器,相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 awk处理过程: 依次对每一行进行处理,然后输出 awk的用法: awk 参数 ' BEGIN{} // {action1;action2} ' END{} 文
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

jmeter 在终端传参,并且指定请求参数文件夹

命令:jmeter -n -t jmeter_1.jmx -l report30.jtl -Jnum=30 -e -o webresult 要保证目录下面没有report30.jtl 和 webresult jmeter配置
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

内置模块的介绍和使用

目录 内置模块的介绍和使用 一、time模块 二、datetime 模块 三、random模块 四、OS模块 五、sys模块 六、hashlib模块 内置模块的介绍和使用 一、time模块 在Python的三种时间表现形式: 时间戳:给电脑看的 自1970-01-01 00:00:00 到当前时间,按秒计算,计算了多少秒 格式化时间(Format String):给人看的 返回的是时间的字符串 2019-11-16 格式化时间对象(struct_time): 返回的是一个元组,元组中有9个值:
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

time/datetime模块

time模块 三种时间表现形式: 1.时间戳:给计算机看。记录了自1970-01-01 00:00:00到当前时间过了多少秒。 2.格式化时间(Format String):返回的是字符串 2019-11-16 3.结构化时间(struct_time):以元组的形式返回时间元素(年、月、日、时、分、秒、一周中第几天、一年中第几天、夏令时) import time #1.获取时间戳,计算时间时使用 print(time.time()) >>>1573886771.964408 #2.获取格式化
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

函数递归&模块与包

函数递归 函数递归就是指的是重复(直接或间接调用)函数本身,这是一种函数嵌套调用的表现形式 直接调用:指的是在函数内置,直接调用函数本身。 间接调用:两个函数之间相互调用见解造成递归 python中的递归深度即限制递归次数:998 PS:每一台操作系统中都会根据硬盘来设置默认递归深度。 查看当前递归深度:sys.getrecursionlimit() import sys print(sys.getrecursionlimit()) #查看当前承受的递归深度 sys.setrecursionl
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

内存管理,goto的使用,内存的申请和释放,mmap,ioremap

1、内存管理 (将物理内存映射到内核空间(3G~4G)并使用) 深入内核: 伙伴系统 1.1基本概念 1)linux内核管理内存是以物理内存页为单位 一个物理内存页通常为4KB 内核会为每个物理内存页创建如下结构变量 struct page { //记录该物理内存页被引用的次数 为0 代表空闲页 atomic_t _count ... } 2) 内核管理内存时对所有的内存并不是一视同仁 低端内存: 介于0~896M(可调)的内存称为低端内存 采用静态映射方式 该段内存的虚拟地址 虚拟地址=0x
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

drf请求模块分析

一、drf请求模块 、drf的request是在wsgi的request基础上再次封装 、wsgi的request作为drf的request一个属性:_request 、新的request对旧的request做了完全兼容 、新的request对数据解析更规范化: 所有的拼接参数都解析到query_params中, 所有数据包数据都被解析到data中 query_params和data属于QueryDict类型,可以 .dict() 转化成原生dict类型 源码分析 1、drf的APIView类
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

QtCreator设置野火iMx6开发板提供的qt交叉编译套件

在Ubuntu18 QtCreator上添加野火iMx6开发板的Qt交叉编译环境 PC:Ubuntu18.04 QtCreator: 4.8.2 交叉编译环境:野火提供的 5-编译工具链->qt交叉编译工具 过程: 1.根据qt交叉编译工具里的md文件说明,安装qt交叉编译环境并测试是否安装成功 2.在QtCreator安装目录的bin文件夹内,修改qtcreator.sh,在第一行添加如下内容(qt交叉编译环境按默认路径安装): source /opt/fsl-imx-x11/4.1.15-
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

1119作业

左侧菜单栏 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://cdn.bootcss.com/jquery/3.2.1
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

三元表达式&列表生成式&生成器表达式&匿名函数&内置函数

三元表达式 三元表达式是python为我们提供的一种简化代码 语法:res = 条件成立时返回的值 if 条件 else 条件不成立时返回的值 比较用法; 1.复杂的小白方式 def max(x,y): if x>y:        return x    else:        return y res = max(1,2) print(res) 2.三元精英级表达式 x=1 y=2 res = x if x>y else y print(res) ​   列表生成式 列表生成式是
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

Photoshop相关

新建图层 Ctrl + Shift + n
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

第一章 1.4 数据类型之列表

一、什么是列表 1、列表 列表是python提供的容器型数据类型;以中括号[]作为容器标志; 里面多个元素用逗号隔开:[1,2,3,4,5,6],元素的个数就是列表的长度 列表是可变的、 有序的 ; 可变性:(元素的个数,元素的值,元素的顺序)-元素支持增、删、改操作; 有序性:支持下标操作 2、列表元素: 列表中的元素可以是任何类型的数据(赋值语句除外) 同一个列表中的元素的类型可以不一样 例:[123,12.4,True,'sdf',[1,4,5],(10,19),{'name':100}
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

Java学习总结-反射

反射经常听到这个词,但是总是不理解这个意思。今天便来理解一下反射这个概念,为什么说在框架设计中,反射用到的比较多。本文记录一下学习反射方面的知识点。 反射概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,
分类: 编程语言 发布时间: 11-19 21:01 阅读次数: 0

第一章 1.5 数据类型之元组

一、什么是元组 元组就是不可变的列表 元组是将小括号 () 作为容器的标志;(元素1,元素2,...) 元组不可变性,不能增、删、改, 元组有序性,支持下标操作 元组元素可以是任何类型的数据 二、元组的操作。(元组的操作和列表的相似度很大,有一些独特的操作已单独列出) 1、查 (元组的查和列表的基本相同;但元组不支持增、删、改) tuple1 = (2,5,8,1,8) print(tuple1[0]) print(tuple1[3]) print(tuple1[2:4:2]) 2、元组和列表
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0

α2

问题 答案 这个作业属这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/ 这个作业要求在哪里 https://www.cnblogs.com/harry240/p/11524169.html 团队的名称 C#与GIS的完美邂逅 这个作业的目标 α1版本的改良 一、团队成员简介 序号 成员姓名 学号 1 张焱菁 201731024115 2 曾琅 201731024135 3 袁志杰 20173
分类: 其他 发布时间: 11-19 21:01 阅读次数: 0
今日推荐