摘要:
python 的 super 是一个函数,需要两个参数,第一个参数是类,第二个参数是实例,返回值是一个类对象。 其意义是:站在参数2这个实例的角度看去, 参数1这个类的‘父亲’是谁,把‘父亲’返回。 详情见这里。 Java 的 super 是一个引用,即一个指针,它指向的是本类内部的那个父类对象。 阅读全文
摘要:
一、首先我们用PyCharm来创建一个Django项目 终端命令:django-admin startproject sitename 图形创建: 这样一个Django项目就创建完成了,上面可以看到项目的一个结构 接下来创建一个APP 二、创建APP 进入到项目所在目录执行命令 C:\Users\y 阅读全文
摘要:
python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射) 一、getattr 对象获取 类获取 输出如下: 二、setattr 设置类属性、方法 输出如下: 设置对象属性、方法 输出如下: 三、模块反射 创建一个模块mokuai.py 然后 阅读全文
摘要:
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语 阅读全文
摘要:
HTTP是一个应用层协议,主要用于Web开发,通常由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消 阅读全文
摘要:
一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。除此之外没 阅读全文
摘要:
Django 项目是一个定制框架,它源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有: 用于创建模型的对象关系映射 为最终用户设计的完美管理界面 一流的 URL 设计 设计者友好的模板语言 缓存系统 本文是有关 Python Web 框架的由两篇 阅读全文
摘要:
官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}。 变量 {{ 变量名 }} 变量名由字母数字和下划线组成。 点(.)在模板语言中有特殊的含义,用来获取对象的相应属性值。 几个例子: view中代码: 模板中支持的写法: Filters 阅读全文
摘要:
在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段。 含义: SYN 表示建立连接, FIN 表示关闭连接, ACK 表示响应, PSH 表示有 DATA数据传输, RST 表示连接重置 阅读全文
摘要:
一、ICMP协议分析 ICMP:Internet控制报文协议。由于IP协议并不是一个可靠的协议,它不保证数据被成功送达,那么,如何才能保证数据的可靠送达呢? 这里就需要使用到一个重要的协议模块ICMP(网络控制报文)协议。它传递差错报文以及其他需要注意的信息,经常供IP层或更高层协议(TCP或UDP 阅读全文
摘要:
容器(Collections) Python附带一个模块,它包含许多容器数据类型,名字叫作collections。我们将讨论它的作用和用法。 我们将讨论的是: defaultdict counter deque namedtuple enum.Enum (包含在Python 3.4以上) defau 阅读全文
摘要:
Python 的 enumerate() 函数就像是一个神秘的黑箱,你无法简单地用一句话来概括这个函数的作用与用法。 enumerate() 函数属于非常有用的高级用法,而对于这一点,很多初学者甚至中级学者都没有意识到。这个函数的基本应用就是用来遍历一个集合对象,它在遍历的同时还可以得到当前元素的索 阅读全文
摘要:
集合推导式 集合推导式(set comprehensions)跟列表推导式也是类似的, 唯一的区别在于它们使用大括号{}表示。 集合解析把列表解析中的中括号变成大括号,返回集合。 下面我们来个应用场景,一直一个列表中有很多元素,我们做到快速去重。 集合推导式生成内容,结果要是可hash的: 字典推导 阅读全文
摘要:
Bootstrap介绍 Bootstrap是Twitter开源的基于HTML、CSS、JavaScript的前端框架。 它是为实现快速开发Web应用程序而设计的一套前端工具包。 它支持响应式布局,并且在V3版本之后坚持移动设备优先。 为什么要使用Bootstrap? 在Bootstrap出现之前: 阅读全文
摘要:
WSGI是什么? WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是为 Python 语言定义的 Web 服务器和 Web 应用程序或框架之间的一种简单而通用的接口。自从 WSGI 被开发出来以 阅读全文
摘要:
一般操作 详细请参考官方文档 必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出 阅读全文
摘要:
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。 这样我们就可以自己实现Web框架了。 半成品自定义web框架 import socket sk = socket.socket() sk.bind(("127.0.0.1" 阅读全文
摘要:
首先说明一下生成器也是迭代器,也有迭代器的那些优点。 那为什么要生成器呢?因为到目前为止都 不是你写的迭代器,都是别人定义好的。那如何自己去造一个迭代器呢?下面的内容就会给你答案。 想要自己造一个迭代器,我们可以根据迭代器的特征(只要一个对象有__iter__和__next__方法那它就是迭代器), 阅读全文
摘要:
Object Relational Mapping(ORM) 一、ORM介绍 1. ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据 阅读全文
摘要:
要理解迭代器,首先要从字面意思来说。 迭代 软件开发就是典型的迭代更新。 讲迭代,我们就先来模拟一下迭代: 现在让我们使用while循环来遍历出一个列表list1 = [1, 2, 3, 4, 5]里面的所有元素。 接下来用for循环来: 很显然,上面两种方式都能实现遍历一个列表里面的所有元素。但是 阅读全文
摘要:
官网的英文解释: javascript和jQuery有点关系,js是一种脚本语言,主要用于客户端,现在主要用于实现一些网页效果。 jquery是js的一个库,你可以认为是对js的补充,提供了很多方便易用的方法,兼容性也好很多,个人更喜欢用jquery。 AJAX全名是Asynchronous Jav 阅读全文
摘要:
LAMP指Linux+Apache+MySQL/MariaDB+Perl/PHP/Python,是一组常用来搭建动态网站或者服务器的开源软件。它们本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。 I 部署方式 您可以使用三种方式在云服 阅读全文
摘要:
一、Python正则表达式re模块简介 正则表达式,是一门相对通用的语言。简单说就是:用一系列的规则语法,去匹配,查找,替换等操作字符串,以达到对应的目的;此套规则,就是所谓的正则表达式。各个语言都有各自正则表达式的内置模块,包括Linux系统中sed、awk也都是使用正则表达式。当然Python中 阅读全文
摘要:
一、PXE简介 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由支持通过网络启动操作系统,再启动过程中,终端要求服务器分配IP地址,再用TFTP( 阅读全文
摘要:
<!-- Article Body --> 早期时,启动一台计算机意味着要给计算机喂一条包含引导程序的纸带,或者手工使用前端面板地址/数据/控制开关来加载引导程序。尽管目前的计算机已经装备了很多工具来简化引导过程,但是这一切并没有对整个过程进行必要的简化。 让我们先从高级的视角来查看 Linux 引 阅读全文
摘要:
多重继承 继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能。 回忆一下Animal类层次的设计,假设我们要实现以下4种动物: Dog - 狗狗; Bat - 蝙蝠; Parrot - 鹦鹉; Ostrich - 鸵鸟。 如果按照哺乳动物和鸟类归类,我们可以设计出这样的类的层 阅读全文
摘要:
面向对象的设计思想是从自然界中来的,因为在自然界中,类(Class)和实例(Instance)的概念是很自然的。Class是一种抽象概念,比如我们定义的Class——Student,是指学生这个概念,而实例(Instance)则是一个个具体的Student,比如,Bart Simpson和Lisa 阅读全文
摘要:
看下面的例子就明白了 __repr__和__str__这两个方法都是用于显示的,__str__是面向用户的,而__repr__面向程序员。 打印操作会首先尝试__str__和str内置函数(print运行的内部等价形式),它通常应该返回一个友好的显示。 __repr__用于所有其他的环境中:用于交互 阅读全文
摘要:
文档 地址 functools.partial 作用: functools.partial 通过包装手法,允许我们 "重新定义" 函数签名 用一些默认参数包装一个可调用对象,返回结果是可调用对象,并且可以像原始对象一样对待 冻结部分函数位置函数或关键字参数,简化函数,更少更灵活的函数参数调用 #ar 阅读全文
摘要:
当年龟叔想把上面列出来的这些都干掉。在 “All Things Pythonic: The fate of reduce() in Python 3000”这篇文章中,他给出了自己要移除lambda、map、filter和reduce的原因。当然,这事儿最后没成功。只有reduce被挪到functo 阅读全文
摘要:
最近研究Nmap,命令太多,详细还是需要参考官方文档(可选中文) 本文转载 在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。逻辑端口是指逻辑意义上 阅读全文
摘要:
子网划分、VLSM可变长子网掩码、CIDR无类域间路由是学习网络知识或者说是学习路由知识所必备的,但很多朋友说这三者理论性太强了,不好掌握。本文将结合实例讲解子网划分的方法并对VLSM和CIDR进行简单介绍。 一、子网划分 子网划分:通过IP子网划分,网络管理员可以在已经得到的整块IP地址空间中创建 阅读全文
摘要:
疑问 大部分涉及多个装饰器装饰的函数调用顺序时都会说明它们是自上而下的,比如下面这个例子: 上面代码先定义里两个函数: decotator_a, decotator_b, 这两个函数实现的功能是,接收一个函数作为参数然后返回创建的另一个函数,在这个创建的函数里调用接收的函数(文字比代码绕人)。最后定 阅读全文
摘要:
0x0 jQuery介绍 jQuery是一个轻量级的、兼容多浏览器的JavaScript库。 jQuery使用户能够更方便地处理HTML Document、Events、实现动画效果、方便地进行Ajax交互,能够极大地简化JavaScript编程。它的宗旨就是:“Write less, do mor 阅读全文
摘要:
0x0 前言 kali安装完成,下面要进行实战操作了,喵~~(OWASPBWA请直接跳到第八部分) 停...停.....停车! 为了维护世界的和平,打靶的话当然是先需要练习,而DVWA就为我们提供了一个能在自己家里打靶的环境,不用到处煽风点火。 好了,进入教程。 0x1 获取dvwa安装包并解压 从 阅读全文
摘要:
0x0 前言 Kali安装完成后,默认是国外官方的更新源,更新速度4kb/s太酸爽了。。。 0x1 把更新源设置为国内阿里云或者中科大的镜像源 命令行:leafpad /etc/apt/sources.list 删除里面的所有内容添加以下:>> 0x2 更新并测试 整体更新: 软件测试更新: 阅读全文
摘要:
题目要求: 生成如下列表 [[0,0,0,0,0,],[0,1,2,3,4,],[0,2,4,6,8,],[0,3,6,9,12,]] (考察列表生成式和基本逻辑推理) 方法1: 方法2: Python列表推导式介绍 列表推导式是Python中快速创建列表的一种方式。 之前我们要创建(Python3 阅读全文
摘要:
name 属性用于在 JavaScript 中对元素进行引用,或者在表单提交之后,对表单数据进行引用。 html的name和id可以类比身份证的姓名和身份证编号,编号id具有唯一性,一个id只出现一次。名称name具备可重复性,可以多次出现。 在css中两者都具备识别html元素的作用,name用点 阅读全文
摘要:
0x00 Nmap脚本简介 夜无眠,看了一下Nmap官方的英文API文档(全是English),瞬间心态崩塌,不想吐槽它们的nmap官网前端太丑了=。=,但是都是大牛啊,挺敬佩开源开发者的。 Nmap最灵活的就是它的scripts了,在渗透测试中我们经常会用它来扫描服务、漏洞,而且很多脚本也可以用于 阅读全文
摘要:
nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。 —— 来自百度百科 那么今天带大家来揭露Nmap的另一个面纱 ,那就是脚本。 在某些时候,我们大部分都使用Nma 阅读全文