自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(171)
  • 资源 (6)
  • 收藏
  • 关注

原创 访问网页全过程,用wireshark抓包分析

用wireshark抓包查看访问网站过程打开wireshark,打开一个无痕浏览器,输入网址,到网页呈现这一过程,网络数据包传递的消息都会被放在wireshark里。针对这些包,我们可以逐一分析,摸清网络访问的全过程。首先是通过DNS获取网站的ip地址:在抓到的包里面逐一排查,会请求网站的第一次出现的数据包是DNS包。如图82号包(访问百度为例)。选择82号包后,会出现下面的内容,...

2019-08-08 16:06:35 19393

原创 Python正确的初始化一个二维数组,避开浅拷贝问题

因为python中没有数组,所以一般用列表来实现二维数组。都知道Python中有深拷贝和浅拷贝的问题,所以在初始化二位数组的时候可能不小心就会遇到这样的问题,比如:arr = [[0] * 3] * 4或者a = [[]]*4这样的问题在于其实*4只是复制了n个[0,0,0]或者[]的引用,改任何一个数组都会让另外3个发生改变。那么正确的初始化方法:(避免发生浅拷...

2019-07-21 15:04:40 1158

原创 基于Django的论坛系统项目

ForumSystem一个论坛github下载地址:https://github.com/likunhong01/ForumSystem 能点个星星最好了卡的话csdn下载:要积分不能怪我自动设置积分的一个论坛系统,一个Django论坛项目使用:pycharm打开项目后,选择好运行环境,然后在命令行创建数据库(下面两条语句),然后运行就行了python manage.py makem...

2019-07-16 22:31:59 7029 4

原创 解决Django文件上传views报错NoneType,其他能收到

Django通过form表单给后台提交一个文件的时候,报错'NoneType' object has no attribute 'name'前端:<form accept-charset="UTF-8" action="跳转链接" method="post"> <div> <input type="file" name="t...

2019-07-03 20:19:03 1681

原创 用Python实现9种常用设计模式

设计模式设计模式是一套被反复使用的代码结构,是代码设计经验的总结。他提高了代码的可重用性,让代码更容易被他人理解,保证代码可靠性。这里总结9种常见的设计模式作为参考,并用Python实现。设计模式分类点击链接跳转:创建型设计模式单例模式工厂模式结构型设计模式门面模式代理模式行为型设计模式命令模式模板方法模式观察者模式状态模式复合型设计模式MV...

2019-06-27 18:45:48 2061

原创 MVC模式介绍

MVC模式概念模型-视图-控制器模式模型:声明存储和操作数据的类视图:声明构建用户界面和显示数据的类控制器:连接模型和视图的类客户端:根据某些操作来获得某些结果各层的定义模型层定义针对数据的所有操作,并且提供与数据使用方式有关的方法。比如数据库连接等。视图层代表用户界面,比如GUI,web的前端等,他没有逻辑处理,只用来显示数据。控制层用来请求接收视图层的数据,然后...

2019-06-27 18:41:11 2475

原创 Python设计模式之状态模式

状态模式目录状态模式概念实现计算机状态例子状态设计模式优缺点优点缺点状态模式概念一个对象可以基于其内部状态封装多个行为也可以看做在运行时改变对象行为的一种方式(Python正好擅长这一点)实现例子:收音机具有AM/FM两种调频方式和一个扫描按钮,扫描可以扫描到多个FM/AM频道。当用户打开,设置为FM。点击扫描,可以扫到多个有效FM频道。如果改变为AM,扫描只会扫到AM频道。也就是...

2019-06-27 18:35:01 501

原创 Python设计模式之模板方法设计模式

模板方法目录模板方法——封装算法概念实现模板方法UML图实例模板方法的有点和缺点优点缺点一些问题模板方法——封装算法概念模板方法通过一种称为模板方法的方式来定义程序框架或者算法使用基本操作定义算法框架重新定义子类某些操作实现代码重用利用通用接口实现比如:我们封装了制作饮料的算法,那么现在可以用制作饮料的模板方法来实现沏茶。但需要改变步骤。实现一个编译器:收集源代码,把源代码...

2019-06-27 18:31:21 402

原创 Python设计模式之命令模式

命令模式目录命令模式——封装调用实现证券交易所的例子命令模式的优缺点优点缺点命令模式——封装调用命令模式是一种行为设计模式,他用于封装触发事件(完成任何一个操作)所包含的所有信息。一般有方法名称,拥有方法对象,方法参数等。一个安装向导的例子:每一步选择的都会存在Command对象里,在最后一步点击finish的时候,Command会运行execute进行安装。class Wizar...

2019-06-27 18:26:59 1117

原创 Python设计模式之观察者模式

观察者模式目录观察者模式行为型设计模式实现观察者模式的通知方式观察者模式优缺点一些问题观察者模式是一种行为型设计模式行为型设计模式创建型模式基于对象的创建机制,隔离对象的创建细节,使得代码能够与对象类***相互独立***。结构型设计模式用于***设计对象和类的结构***,从而优化他们的结构,和他们之间的关系。行为型设计模式在于***关注对象的职责***,用来处理对象之间的交互。...

2019-06-27 18:25:36 421

原创 Python设计模式之代理模式

代理模式目录代理模式概念实现:代理有什么用?代理和门面区别常见问题代理模式概念代理就是一个中间系统代理模式关键在于对外屏蔽真实对象通过代购可以类比一下演员与经纪人的例子来理解一下:class Actor(object): def __init__(self): self.is_busy = False def occupied(self): ...

2019-06-27 18:21:33 429

原创 Python设计模式之门面模式

门面模式目录门面模式UML图结构型设计模式概述实现门面模式是一个结构型设计模式给子系统中的接口提供统一接口,使用更加简单。实现:用单一接口解决复杂问题。不是对子系统的再封装,而是对子系统进行组合。UML图结构型设计模式概述用于描述如何将对象和类组合成更好的结构是一种能够简化设计工作的模式,因为他能够找出更简单的方法来表示实体(对象或者类)之间的关系。类模式通过继承描述对...

2019-06-27 18:08:27 462

原创 Python实现简单工厂、工厂方法、抽象工厂设计模式

工厂模式概念实现简单工厂工厂方法工厂方法优点抽象工厂工厂方法和抽象工厂的比较概念在面向对象中,工厂表示一个负责创建其他类型对象的类。工厂具有:松耦合客户端无需了解创建对象的类,但是照样可以使用它来创建对象。可以轻松的在工厂中添加其他类来创建其他类型的对象。工厂模式有3种变体:简单工厂:允许接口创建对象,但不会暴露对象的创建逻辑。工厂方法:允许接口创建对象,但使用哪个类来创建...

2019-06-27 16:01:37 1620

原创 Python实现单例模式的三种方法

单例模式定义实现饿汉式单例懒汉式单例使用元类实现单例单例模式优缺点定义他提供了一个机制:确保一个类只有一个实例对象。例如日志记录,数据库操作,打印机后台处理程序等。实现最简单的实现方法是使构造函数私有化,并创建一个静态方法来完成对象的初始化。然后对象将在第一次调用时创建,之后这个类将返回同一个对象。注意:类只创建一个对象为对象提供一个访问点,使程序可以全局访问该对象控制共享资源...

2019-06-27 15:55:28 1466 1

原创 Centos7+ nginx + uwsgi + Django 配置https,包含一些踩过的坑

首先准备好:编写好的Django项目 购买服务器,安装centos(我使用腾讯云+centos7.4) 安装nginx 安装uwsgi 申请ssl证书并下载 开始配置配置步骤:1、Django同步到linux:使用远程连接软件或者git都行,pycharm可以直接连接然后同步,具体:2、配置uwsgi和Django的连接: (1)在Django的manage...

2019-05-21 10:00:03 887

原创 python爬取糗事百科文字段子

思路:找到网页,获取url 分析网页的html结构 用requests和lxml库请求和在网页中找内容 保存数据直接爬的简单代码:(后面有封装成class的写法)import requestsimport jsonfrom lxml import etree# 请求头headers = { "User-Agent": "Mozilla/5.0 (Windows N...

2019-04-18 00:26:19 483

原创 解决:python爬取豆瓣电影遇到的KeyError: 'subject_collection_items'错误

今天在学习爬虫,爬取豆瓣电影的一些json资料存到本地的时候遇到了一些问题,先解释一下:在豆瓣手机版的“正在热映”页面里可以找到一些包,里面有当前页的内容(json格式):所以requests模块可以去爬这些下来:找到url,然后找到提交规律url里是用的start来表示当前页面显示的是哪些片。还可以找到数据都放在subject_collection_items下面:...

2019-04-15 23:07:27 3258 5

原创 高僧斗法——博弈游戏java实现

时间限制:1.0s 内存限制:256.0MB问题描述  古时丧葬活动中经常请高僧做法事。仪式结束后,有时会有“高僧斗法”的趣味节目,以舒缓压抑的气氛。  节目大略步骤为:先用粮食(一般是稻米)在地上“画”出若干级台阶(表示N级浮屠)。又有若干小和尚随机地“站”在某个台阶上。最高一级台阶必须站人,其它任意。(如图1所示)  两位参加游戏的法师分别指挥某个小和尚向上走任意多级的台阶,...

2019-03-23 23:29:38 299

原创 约数倍数选卡片——博弈java实现

记录一下代码:import java.util.ArrayList;import java.util.Scanner;public class 约数倍数选卡片 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String s1 = scanner.n...

2019-03-23 23:27:49 308 2

转载 Object类的方法

Object是所有类的父类,任何类都默认继承Object。Object类到底实现了哪些方法?1.clone方法保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。2.getClass方法final方法,获得运行时类型。3.toString方法该方法用得比较多,一般子类都有覆盖。4.fi...

2019-03-11 11:27:41 142

原创 Django的html继承(extends)和引入(include)用法

Django提供html网页的继承和引入机制,减少重复代码母板继承先写一个母板:master.html关键语法:{% block content1 %} {% endblock %}&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;t

2019-03-02 20:14:47 2308

原创 Django框架中定位URL的render、redirect和HttpResponse方法区别

Django中在views里有3种返回url的形式:HttpResponse:可以直接返回一个html页render:用于页面渲染,需要传入request参数,除了html文件名,还可以传数据到页面上,源码里的介绍如下:实际还是调用HttpResponsedef render(request, template_name, context=None, content_t...

2019-02-23 16:30:49 2075

原创 synchronized是对象锁还是全局锁

都可以锁!synchronized(this)以及非static的synchronized方法,锁住的是括号里()的对象,如果要锁全局,就用synchronized(对象.class)。static 的synchronized方法,static方法可以直接类名.方法名()调用,无法使用this,所以它锁的不是this,而是类的Class对象。所以静态方法也相当于全局锁,锁住了代码段。具...

2019-02-20 15:09:59 1647

原创 ArrayList、Vector、LinkedList对比

ArrayList、Vector、LinkedList作为List的三个常用子类,为序列化一维数组提供了很好的保障。他们有共同点和各自的特点。依次分析。介绍:ArrayList:动态数组,从jdk1.2开始,array(数组)的升级版本,实现动态扩容,从而节省了一定的空间。Vector:向量,自动增长数组,从jdk1.0就有LinkedList:链表,利用类之间的引用关系,实现链式...

2019-02-19 00:29:51 173

原创 LeetCode——实现strStr()

实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回  -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needl...

2019-02-18 16:53:25 151

原创 Django报RuntimeError at /...错误

Django报如下错误:RuntimeError at /loginYou called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST dat...

2019-02-15 19:21:59 7728

原创 JavaScript正则表达式

js正则常用于登录注册验证。创建正则表达式:写在两个/.../或者/^...$/中间,就是创建了,区别下面会说到。^是开始符号,$是结尾符号。var rep = /\d+/; // 创建匹配数字的正则表达式var reps = /^\d+$/; // 创建只匹配数字的正则表达式他有两个方法:text:判断字符串是否符合规定的正则exec:获取匹配的字符串举...

2019-02-14 23:37:33 139

原创 JavaScript词法分析

JavaScript方法在调用执行的时候不会立即执行,而是会经过一层一层的解析再执行。通过一个面试题例子来看: function f(age) { console.log(age); var age = 2; console.log(age); func...

2019-02-13 23:43:22 243

原创 DOM实现全选、反选、取消

需求:经常看到网页上有全选、反选等等按钮,我们用DOM实现。JQuery实现参照:jQuery实现全选、反选、取消简单写一个表格和选中框:忽视掉“添加按钮”直接上代码:在JavaScript代码里 有详细的注释&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UT...

2019-02-12 23:47:55 700

原创 jQuery实现全选、反选、取消

需求:经常看到网页上有全选、反选等等按钮,我们用jQuery实现。DOM实现参照:DOM实现全选、反选、取消。一个简单的html表格可以写出来,同时让按钮绑定点击事件: &lt;input type="button" value="全选" onclick="allPick();"&gt; &lt;input type="button" value="反选&quot

2019-02-12 23:41:01 490

原创 java泛型快速排序

java使用泛型进行快速排序,使得一个算法通用于所有的一维数组//快速排序//划分成两个数组,通过递归给每一个子数组快速排序//1.设定关键字,比关键字小的放在一边,大的放在另一边//2.设置数组最右端为关键字//3.递归实现快速排序public class Quick { public static void main(String[] args) { I...

2018-12-18 21:00:16 295

原创 java泛型冒泡排序

java使用泛型进行冒泡排序,使得一个算法通用于所有的一维数组public class Bubble { public static void main(String[] args) { Integer[] arr = {5,6,4,3,2,1}; System.out.print("排序前:"); display(arr); ...

2018-12-18 20:58:38 1044 1

原创 用java扫描指定目录下的所有文件

用java扫描指定目录下的所有文件代码:import java.io.File;public class 列举当前目录下的所有文件 { static int count = 0 ; public static void main(String[] args) { String path = "C:" + File.separator + "Users" +...

2018-12-07 20:18:29 3782

原创 python中计算a的b次方

python计算功能很强大计算a的b次方:a ** b 

2018-12-06 18:23:29 11556

原创 @SuppressWarnings压制警告注解——java

@SuppressWarnings 压制警告当调用某些操作可能产生问题的时候就会出现警告信息,通过@SuppressWarnings告诉编译器忽略指定的警告,不用在编译完成后出现警告信息。比如@SuppressWarnings("deprecation")可以让编译器忽略掉使用过期方法而出现的警告:class Test1 { @Deprecated public ...

2018-11-20 23:37:11 4877

原创 @Deprecated注解——java

@Deprecated 过期处理表示这个类或者方法在旧版本没有问题,但是在新版本不推荐使用了。加上@Deprecated注解,明确表示不建议别人再使用这个类或者方法。class Test1 { @Deprecated public void print(){ System.out.println(1); }} ...

2018-11-20 23:24:26 463

原创 @override注解——java

@override 准确注解检查当前类中的覆写方法与父类定义的同名方法是否相同,如果有任何一个地方不同,编译就会报错。class Test1 { public void print(){ System.out.println(1); }}class Test2 extends Test1 { @Override public void...

2018-11-20 23:23:12 405

原创 用java函数式编程——Lambda表达式

函数式编程很多开发语言都开始支持函数式编程,其中最具备代表性的就是haskell。函数式编程和面向对象编程可以理解为两大开发阵营。在函数式编程中,所有的数据都是不可变的,不同的函数之间通过数据流来交换信息,函数享有跟数据一样的地位,可以作为参数传递给下一个函数,同时也可以作为返回值。函数式编程的表达方式更加符合人类日常生活中的语法,代码可读性也更强。实现同样的功能,函数式编程比面向对象编程...

2018-11-20 00:24:27 242

原创 css样式优先级

css选择器的优先级关系样式的优先级:标签里写的style最高,其他的按head里的style标签里写在最下面样式的优先级最高(就近原则)。&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;优先级&lt;/t

2018-11-14 23:30:16 247

原创 html导入css文件

html导入css文件&lt;link rel="stylesheet" href="Commons.css"/&gt;把Commons的css样式导入到当前html页里

2018-11-14 23:22:36 934

ForumSystem.zip

一个基于Django的论坛项目,实现用户端发帖、看帖、看公告、筛选帖子等功能,和管理端的管理帖子、公告、分类功能,详细介绍看压缩文档里的readme。

2019-07-16

AcmeStudio安装包

AcmeStudio是被卡内基美隆大学生产的软件结构发展环境。它允许软件建筑的发展和分析,而且提供研究员结合的架构提供他们自己的建筑分析网络设备。

2018-12-27

jdk 9 api帮助文档

java的jdk 9 api帮助文档,可以查询jdk 9 里的各种类的信息,方法,构造方法,静态方法,接口方法等。

2018-12-07

python-sqlalchemy帮助文档

python下使用SQLAlchemy的帮助文档,里面有所有的方法的说明

2018-10-24

RabbitMQ服务端3.7.8安装包

RabbitMQ消息队列的服务端3.7.8版本安装包,解压后一键安装

2018-10-18

otp windos 64位 21.0.1版本

otp-windows-64位-21.0.1版本,安装RabbitMQ之前必须安装这个

2018-10-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除