自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 Python3 pickle 模块的使用详解

pickle 模块特点:1、只能在python中使用,只支持python的基本数据类型。2、可以处理复杂的序列化语法。(例如自定义的类的方法,游戏的存档等)3、序列化的时候,只是序列化了整个序列对象,而不是内存地址。4、pickle 使用场景:用于python特有的类型和python的数据类型间进行转换5、pickle 四个功能:dumps,dump,loads,loadpickl...

2019-09-30 15:42:51 998

原创 国庆节去哪浪?让 Python 帮你分析分析

     2019 年国庆马上就要到来了。。。今年想着来点新花样吧玩肯定是要去玩的不然怎么给祖国庆生那去哪里好玩 big 还高呢?咱就用 Python 分析下看看哪些地方值得我们去让我们切入正题。。。项目目标:使用 Python 分析出各地哪些旅游景点好玩,更值得我们去数据来源:马蜂窝旅行网相关模块:Flask、json、pymongo、re、lxml、req...

2019-09-30 14:24:40 808

原创 解决 Pycharm 配置 Docker interpreter 进行开发时 python console 和 manage shell 无法使用的问题

前言:本文适用于项目环境使用的是 Pycharm 配置 Docker 中的 Python interpreter;Pycharm 配置 Docker python 解释器方法见:https://blog.csdn.net/PY0312/article/details/101520978;问题描述:我们在使用 Pycharm 的时候,难免会用到 Python console 或...

2019-09-27 14:54:13 1758

原创 Windows Pycharm 配置 Docker python 解释器进行开发

前言:在开发中,为了降低开发环境维护成本,通常都会将本地的 python 解释器环境通过 Dockerfile 构建成 docker 镜像,发布到我们自己的服务器中。后续不管在Windows、Mac OS 还是 Linux 平台下开发,我们只需要将镜像 pull 到本地,然后在Pycharm 中配置一下就能快速开发了,有效的解决了各平台下安装扩展包的兼容性问题,省时高效,瞬间迁移。Pyc...

2019-09-27 13:00:51 3575 3

原创 Docker Desktop for Windows 安装步骤

Windows 安装要求Docker Desktop for Windows需要运行Microsoft Hyper-V。如果需要,Docker Desktop for Windows安装程序会为您启用Hyper-V,并重新启动计算机。启用Hyper-V后,VirtualBox(这是不支持Hyper-V的Windows上安装Docker Toolbox时候需要运行的虚拟机软件,这里我们默认你的W...

2019-09-27 12:45:23 1278

原创 Django框架 之 ORM查询方法含义说明

一、一般操作<1>all(): 查询所有结果<2>filter(**kwargs): 它包含了与所给筛选条件相匹配的对象<3> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。<4&g...

2019-09-26 09:57:13 464 2

原创 Django 源码分析 LazySetting 对象

一、Django 中通过 LazySetting 对象来获取项目的配置,LazySetting 对象有什么特性?为什么使用这个对象?LazySetting 顾名思义,就是延迟获取配置内容。比如,我们定义了一个对象A,并对其添加了一些属性,对A初始化时,我们将 A 的属性的值设置为空,当我们要访问 A 其中的一个属性时,此时属性的值为空,我们才加载属性的值,并将空值设置为对应的值,返回属性值,...

2019-09-24 13:12:00 1395

原创 Django 调试时在控制台打印当前访问的 url 路径

提示:在视图入口位置添加以下代码即可。一、打印当前访问完整路径(包含路径和参数):例如:/test/?uid=1&cid=1print(request.get_full_path())二、打印当前访问路由(只有路径,不含参数):例如:/test/print(request.path_info)...

2019-09-23 15:08:14 2398

原创 Django 如何定义中间件 以及 原理

中间件:Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。我们可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。中间件的定义方法:定义一个中间件工厂函数,然后返回一个可以别调用的中间件。中间件工厂函数需要...

2019-09-21 14:07:22 518

原创 Django 中 Session 的储存和操作

一、启用Session:Django项目默认启用Session。可以在settings.py文件中查看,如图所示如需禁用session,将上图中的session中间件注释掉即可。二、存储方式:在settings.py文件中,可以设置session数据的存储方式,可以保存在数据库、本地缓存等。2.1 数据库存储在数据库中,如下设置可以写,也可以不写,这是默认存储方式。...

2019-09-21 14:04:48 2194 8

原创 Django 中如何设置 Cookie 和 读取 Cookie?

Cookie:Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明。Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同...

2019-09-21 14:00:46 1230

原创 Django 中的响应对象 Response

视图在接收请求并处理后,必须返回HttpResponse对象或子对象。HttpRequest对象由Django创建,HttpResponse对象由开发人员创建。一、HttpResponse:可以使用django.http.HttpResponse来构造响应对象。HttpResponse(content=响应体, content_type=响应体数据类型, status=状态码)...

2019-09-21 01:54:13 1011

原创 Django 中的请求对象 Request

回想一下,利用 HTTP 协议向服务器传参有几种途径?提取 URL 的特定部分,如 /weather/beijing/2018,可以在服务器端的路由中用正则表达式截取; 查询字符串(query string),形如 key1=value1&key2=value2; 请求体(body)中发送的数据,比如表单数据、json、xml; 在 http 报文的头(header)中传参。一...

2019-09-21 01:52:04 429

原创 Django 中路由反(逆向)解析reverse

路由命名:在定义路由的时候,可以为路由命名,方便查找特定视图的具体路径信息。1) 在使用include函数定义路由时,可以使用namespace参数定义路由的命名空间,如url(r'^users/', include('users.urls', namespace='users')), # 在主路由中添加 命名空间 参数命名空间表示,凡是users.urls中定义的路由,...

2019-09-21 01:46:41 1085

原创 Django 中路由的解析顺序及原理

路由原理图:路由定义位置:Django的主要路由信息定义在工程同名目录下的urls.py文件中,该文件是Django解析路由的入口。每个子应用为了保持相对独立,可以在各个子应用中定义属于自己的urls.py来保存该应用的路由。然后用主路由文件包含各应用的子路由数据。除了上述方式外,也可将工程的全部路由信息都定义在主路由文件中,子应用不再设置urls.py。如:from d...

2019-09-21 01:46:33 1247

原创 JQuery 阻止事件冒泡---3种实现方式

第一种:return false:缺点:直接返回了函数,函数后面的语句没法执行了;$('.btn').on('click',function(event){ do something ... return false })第二种:event.stopPropagation():1、阻止事件冒泡这里以click事件为例<divclass="b...

2019-09-20 14:55:28 7894

原创 JQuery 之 DOM 文档操作

DOM文档对象模型 (document object model):js内置的一个结构化表现手法,通过这个结构化表现手法把所有的标签实现了一个倒置的树状结构图节点(node):标签(html)==元素(javascript)==节点(dom)节点与节点的关系:同级关系子级关系节点操作简单案例:<script> $(function(){ ...

2019-09-20 14:31:40 378

原创 JQuery 之 阻止事件冒泡

事件冒泡:子级触发的事件会逐层向父级传递(冒泡) ,这种现象称为事件冒泡事件冒泡的作用:事件冒泡允许多个操作被集中处理(把事件处理器添加到一个父级元素上,避免把事件处理器添加到多个子级元素上),它还可以让你在对象层的不同级别捕获事件阻止事件冒泡: 方式一:在事件处理命令中添加return false即可,可以阻止默认事件和冒泡事件;方式二:event.stop...

2019-09-20 14:31:29 650

原创 JQuery 之 事件委托(事件代理)

事件委托/事件代理:事件委托就是利用冒泡的原理,把事件加到父级上,通过判断事件来源的子集,执行相应的操​事件委托的写法:$(选择器).delegate( 事件真实发生在谁身上, 事件属性,匿名函数写命令)事件委托的好处:可极大减少事件绑定次数,提高性能 可让动态加入的子元素绑定相同的命令Example:<!--js部分--><script>...

2019-09-20 14:31:15 2260

原创 JQuery 常见的表单验证方法

一、allow 的验证:对复选框绑定单击事件, 如果没有勾选则报错提示, 勾选的话隐藏报错提示信息Example:<script> // 复选框同意协议 -- 单击改变勾选的状态 -- click var $allow = $('#allow') $allow.click(function () { // 如果没有勾选 报错,...

2019-09-20 11:13:21 840

原创 Ajax 请求的三种写法

Ajax 请求简介:Ajax即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术ajax技术的目的: 是让js发送http请求,实现与服务端通信,即数据交互 ajax的两个主要好处: 异步请求 局部刷新(无刷新) 数据接口: 数据接口是后台提供的...

2019-09-20 11:01:12 7369 4

原创 Web 开发必备的后台管理开源项目 Top10

Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者使用,那么有哪些优秀的开源免费的控制面板呢?我在 Github 上收集了一些优秀的后台控制面板,并总结得出 Top 10。1.AdminLTEGithub Star 数 24969 , Github 地址:https://github.com/almas...

2019-09-19 13:57:04 2077

原创 Python 一行代码实现 斐波那契数列

代码:print([x[0] for x in [ (a[i][0], a.append((a[i][1], a[i][0]+a[i][1]))) for a in ([[1,1]], ) for i in range(100) ]])视图:

2019-09-17 18:30:21 1566

原创 Python 一行代码实现 九九乘法表

代码:print('\n'.join([' '.join(['%s*%s=%-2s'%(y,x,x*y)for y in range(1,x+1)]) for x in range(1,10)]))视图:

2019-09-17 18:29:53 862

原创 MySQL 数据库优化的常见八种方式

引言:关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂。  偶尔发现了这篇文章,总结得很经典,文章流量也很大,所以拿到自己的总结文集中,积累优质文章,提升个人能力,希望对大家今后开发中也有帮助1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的...

2019-09-17 18:14:54 416 1

原创 Scrapy 爬取数据常见的 4 种保存形式:csv、mysql、mongodb、json

前言:OK,通过签名两篇文章《爬虫利器初体验(1)》《听说你的爬虫又被封了?(2)》,我们初体验也过了,爬虫代码健壮性也升级为 PLUS 了。都分析到这个地步了,是不是感觉还少了点什么?对,我们还没保存数据呀?不保存,这不是瞎忙活吗?Items:item 是我们保存数据的容器,其类似于 python 中的字典。使用 item 的好处在于:Item 提供了额外保护机制来避免拼写错误导致...

2019-09-16 17:37:56 1336

原创 Django 开发中常用的命令总结

1. 创建一个Django Project# 使用下面的命令可以创建一个projectdjango - admin.py startproject mysite# 创建好之后可以看到如下的project结构mysite/manage.pymysite/__init__.pysettings.pyurls.pywsgi...

2019-09-15 21:57:24 351

原创 Flask 中使用 jsonify 和 json.dumps 的区别?

Flask提供了 jsonify 函数供用户处理返回的序列化 json 数据,而 python 自带的 json 库中也有 dumps 方法可以序列化 json 对象。那么在Flask 的视图函数中 return 它们会有什么不同之处呢?想必开始很多人和我一样搞不清楚,只知道既然框架提供了方法就用,肯定不会错。但作为开发人员,我们需要弄清楚开发过程中各种实现方式的特点和区别,这样在我们...

2019-09-15 21:57:16 474

原创 Python 实现单例模式

单例模式:其实就是重写__new__方法,添加条件保证只能创建一个对象,然后返回代码如下:# 实例化一个单例class Singleton(object): """docstring for Singleton""" __instance = None def __new__(cls, age, name): # 如果类属性__instanc...

2019-09-15 21:57:11 363

原创 Django 中防范 CSRF 跨站请求伪造攻击步骤详解

CSRF 概念:CSRF跨站点请求伪造(Cross—Site Request Forgery)。攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。CSRF 攻击原理以及过程:1、用户C打开浏览器,访问受信任网站A,输入...

2019-09-13 00:17:45 673

原创 Git 工作原理详解(附:常用 Git 命令)

Git 简介:git是一个分布式管理系统 ( 分布式: 在客户端和服务端都具有版本控制能力 ) 作用: 管理源代码 方便多任协同开发 方便版本控制 ( 可以以最快的速度恢复到指定版本 ) 仓库: 在我们文件中如果有.git文件夹, 即标记着代码仓库已经建立 .git 同级目录下的文件都会被管理起来 Git 原理图:常用命令: git init ...

2019-09-13 00:13:11 585

原创 Python 中 property 属性两种实现方式详解

property属性:一种用起来像是使用的实例属性一样的特殊属性, 可以用于某个方法, 通过用property属性, 能够简化调用者获取数据的流程 property属性的定义和调用注意事项: 定义时: 在实例方法的基础上添加 @property 装饰器; 并且仅有一个 self 参数 调用时: 直接 对象.方法名, 无需用() 实现 property 属性有两种方式:装...

2019-09-13 00:11:47 701

原创 Python 中多继承 之 MRO 详解

多继承中的 MRO 顺序:多继承指的是子类继承了多个父类调用父类三种方法区别:父类名.父类方法(self): 在多(三级及以上)继承中, 弊端: 会出现父类被调用多次的情况( 菱形继承问题 ), 这时可用super()来解决 super().父类方法(): 按照 MRO 顺序查找上级父类的方法, 能保证每个父类方法只被调用一次(前提是每个类都使用super) super(指定...

2019-09-13 00:10:43 705

原创 Python 与 MySQL 数据库交互实现步骤

一、安装pymysql命令:sudo pip3 install pymysql二、通过pymysql操作数据库的步骤:三、对数据表的读操作:# 导入模块from pymysql import *# 创建连接对象 连接数据库conn = connect(host="127.0.0.1", port=3306, user="root", password...

2019-09-13 00:10:35 979

原创 MySQL 数据库视图、事务、索引---学习总结

视图( view ):视图概述:通俗的讲, 视图就是一条 select 语句执行后返回的结果集 视图是对若干张基本表的引用, 一张虚拟表, 查询语句执行的结果, 不储存具体数据( 基本表数据改变, 视图也会跟着改变 ) 主要用于方便 查询 操作, 减少复杂的 SQL 语句, 增强可读性创建视图:视图名: 建议以 v_ 开头 create view 视图名 as select查...

2019-09-13 00:10:28 3182

原创 Python 实现工厂模式

工厂函数,工厂类对具体的生成环节进行了封装,这样有利于代码的后续扩展,即把功能划分的更具体,4S店只负责销售,汽车厂只负责制造代码如下:class CarFactory(object): """定义一个生产汽车的工厂,让其根据具体的订单生产车""" def createCar(self, typeName): if typeName == "伊兰特":...

2019-09-12 14:20:21 452

原创 Python 多任务 之 协程gevent模块的使用讲解

协程:协程, 又称微线程, 纤程, 英文名 coroutine, 协程, 利用线程在等待某个资源的期间执行其他函数, 切换资源消耗非常小, 协程效率相当快进程, 线程, 协程之前的区别:进程程是资源分配的单位, 真正执行代码的是线程, 操作系统真正调度的是线程 线程是操作系统调度的单位 进程切换占用资源大, 没有线程效率高, 进程占用资源多, 线程占用资源少, 比线程更少的是协程 ...

2019-09-12 11:34:32 559

原创 详解 Python 中的迭代器 与 生成器

迭代器概述:迭代是访问集合元素的一种方式, 迭代器是一个可以记住遍历位置的对象. 迭代器对象从集合的第一个元素开始访问, 直到所有的元素被访问结束, 迭代器只能往前不会后退判断一个对象是否可以迭代:可以使用 isinstance()来判断一个对象是否是 Interable 对象from collections import Iterable isinstance([],...

2019-09-12 11:32:46 386

原创 Python 多任务 之 进程间的通信 和 进程池实现步骤

进程概述:程序是静态的, 当程序运行起来就叫做进程, 是操作系统分配资源的基本单元进程的状态:就绪态:运行的条件都已经慢去,正在等待cpu执行 执行态:cpu正在执行其功能 等待态:等待某些条件满足,例如一个程序sleep了,此时就处于等待态进程 和 线程 的区别 与 优缺点:功能进程,能够完成多任务,比如 在一台电脑上能够同时运行多个QQ 线程,能够完成多...

2019-09-12 11:27:30 382

原创 Python 多任务 之 线程讲解

多任务?简单的说, 就是操作系统可以同时运行多个任务, 实现多任务有多种方式: 线程, 进程, 协程并行与并发的区别:并发: 指的是任务数多余 CPU 核数, 通过操作系统的各种任务调度算法, 实现用多个任务"一起"执行并行: 指的是任务数小于等于 CPU 核数, 即任务真的是一起执行的Re: 真的多任务叫并行, 假的多任务叫并发线程概述:简单的理解为同一进程...

2019-09-12 11:10:46 317

sublime 侧边栏增强插件 SideBarEnhancements

SideBarEnhancements 是 sublime IDE 的一个侧边栏增强插件 , 安装方法详见:https://blog.csdn.net/PY0312/article/details/89529640

2019-04-29

空空如也

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

TA关注的人

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