- 博客(78)
- 资源 (4)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 LocalProxy
先看看这个关于class 下划线方法的使用。例1:# -*- coding: utf-8 -*-# @Time : 2019/6/24 下午 9:20# @Author : lh# @Email : 2470937072@qq.com# @File : test.py# @Software: PyCharmclass Test(object): def...
2019-06-25 09:44:45
816
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 何谓同源策略与Jsonp
同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。当一个浏览器的两...
2019-04-09 15:29:35
271
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 python检测U盘的插入,以及进行自动复制文件并写入文件
技术要点分析:1.如何检测有U盘的插入。2.如何复制U盘里面的东西3.如果U盘可写,如何写入文件到U盘里面。# -*- coding: utf-8 -*-# @Time : 2018/11/1 21:08# @Author : # @Email : # @File : s6.py# @Software: PyCharmfrom time impor...
2018-11-01 21:28:49
7376
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 序列解包(for x,y in zip(keys, values):)详解。
序列解包是一个非常重要和常用的一个功能,使用序列解包可以用非常简洁的方法完成复杂的功能。增强代码的可读性,减少代码量。1.使用序列解包对多个变量同时进行赋值。a, b, c = 1, 2, 3print(a, b, c)test_tuple = (False, 3.5, 'test')d, e, f = test_tupleprint(d, e, f)x, y, z = m...
2018-09-28 01:02:20
26791
5
原创 细说Python设计模式之模板方法模式(封装算法)
文章目录定义模板方法模式适用场景日常例子理解该模式了解模板方法设计模式模板方法模式的UML类图现实中的模板方法模式模板方法模式——钩子好莱坞原则与模板方法模板方法的优缺点问答定义模板方法模式行为模式主要关注对象的响应性。它处理对象之间的交互以实现更强大的功能。模板方法模式是一种行为设计模式,通过一种称为模板方法的方式来定义程序框架或算法。例如,你可以将制作饮料的步骤定义为模板方法中的算法。模板方法模式还通过将这些步骤中的一些实现推迟到子类来帮助重新定义或定制算法的某些步骤。这意味着子类可以重新定义自己的
2020-07-13 17:24:07
791
原创 细说python设计模式之命令模式(封装调用)
文章目录命令设计模式的引出了解命令设计模式代码实现命令设计模式命令模式的UML类图命令设计模式的引出行为模式侧重于对象的响应性。它利用对象之间的交互实现更强大的功能。命令模式也是一种行为设计模式,其中对象用于封装在完成一项操作时或在触发一个事件时所需的全部信息。包含以下信息:方法名称拥有方法的对象方法参数的值了解命令设计模式命令模式通常使用以下术语:Command、Receiver、Invoker和Client:Command对象了解Receiver对象的情况,并能调用Receive
2020-07-13 09:23:40
463
转载 细说Python之观察者模式(行为型模式)
文章目录行为型模式介绍理解观察者设计模式现实世界中的观察者模式观察者模式的通知模式拉模型推模型松耦合与观察者模式观察者模式的优缺点问答环节:行为型模式介绍前面讲了创建型模式(单例模式)、结构型模式(门面模式),现在讲讲行为型模式(观察者模式)。创建型模式的工作原理是基于对象的创建机制的。由于这些模式隔离了对象的创建细节,所以使得代码能够与要创建的对象的类型相互独立。结构型模式用于设计对象和类的结构,从而使它们可以相互协作以获得更大的结构。它们重点关注的是简化结构以及识别类和对象之间的关系。行为型模
2020-07-07 09:44:52
933
转载 细说Python设计模式之代理模式
理解代理设计模式代理通常就是一个介于寻求方和提供方之间的中介系统。寻求方是发出请求的一方,而提供方则是根据请求提供资源的一方。在Web世界中,它相当于代理服务器。客户端(万维网中的用户)在向网站发出请求时,首先连接到代理服务器,然后向它请求诸如网页之类的资源。代理服务器在内部评估此请求,将其发送到适当的服务器,当它收到响应后,就会将响应传递给客户端。因此,代理服务器可以封装请求、保护隐私,并且非常适合在分布式架构中运行。在设计模式的上下文中,代理是充当实际对象接口的类。对象类型可以是多样化的,例如网络
2020-06-23 16:15:11
500
原创 python之属性描述符(上)
学会描述符之后,不仅有更多的工具集可用,还会对 Python 的运作方式有更深入的理解,并由衷赞叹 Python 设计的优雅。 ——Raymond Hettinger Python 核心开发者和专家关于属性描述符描述符是对多个属性运用相同存取逻辑的一种方式。例如,Django ORM 和 SQL Alchemy 等 ORM 中的字段类型是描述符,把数据库记录中字段里的数据与 Python 对象的属性对应起来。描述符是实现了特定协议的类,这个协议包括 __get__、__set__ 和 _
2020-06-15 22:07:27
642
原创 细说python设计模式之门面模式
文章目录理解结构型设计模式理解门面设计模式现实世界中实现门面模式(示例)最少知识原则迪米特法则(设计准则)问答前面的单例模式及工厂模式都是属于创建型设计模式,这里要开始讲结构型设计模式—门面模式。这篇内容:结构型设计模式概要利用UML图理解门面设计模式门面模式与最少知识原则理解结构型设计模式结构型模式描述如何将对象和类组合成更大的结构结构型模式是一种能够简化设计工作的模式,因为它能够找出更简单的方法来认识或表示实体之间的关系。在面向对象世界中,结构型模式是一种能够简化设计工作的模式,因为它能
2020-06-05 16:16:47
312
原创 细说Python设计模式之工厂模式
文章目录关于工厂模式细说工厂模式:简单工厂模式:工厂方法模式细说抽象工厂模式:关于工厂模式在上一篇文章中,我们讲到的是单例模式,单例一种创建型设计模式。这篇我们讲解另一种创建型模式,工厂模式。工厂模式具有以下优点:松耦合,即对象的创建可以独立于类的实现。客户端无需了解创建对象的类,它只需要知道需要传递的接口、方法和函数,就能够创建所需类型的对象了,这简化了客户端的实现。可以轻松在工厂中添加其他类来创建其他类型的对象,这无需更改客户端代码。最简单的情况下,客户端只需要传递另一个参数即可。工厂还
2020-06-02 16:26:29
217
原创 细说Python设计模式之单例模式
@[T]关于单例模式单例模式提供了这样的一个机制,确保类有且只有一个特定类型的对象,并提供全局访问点。所以单例模式适用于以下情况:日志记录与数据库操作、打印机后台处理程序等等。因为这些程序运行过程中只能生成一个实例,用来避免对同一资源产生相互冲突的请求。单例模式的特点:确保有且只有一个对象被创建。为对象提供一个访问点,以使程序可以全局访问该对象。控制共享资源的并行访问。S...
2020-05-13 10:05:59
278
原创 详谈python中的元类(深入浅出之类的类)
文章目录元类关于元类内置函数type()使用type创建类关键点创建元类自定义元类为什么使用metaclass类而不是函数为什么使用元类元类关于元类实例对象是由类创建的,但是类是什么创建的呢?类是元类创建的。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。但是。python中的类,远不止如此。类同样也是一种对象。只要使用关键字class。python解释器在执行的时候就会创建一个对象。在下面的代码中,将在内存中创建一个对象,名字为ObjectTest.这个对象(类)自身拥有创建对
2020-05-09 17:05:44
340
原创 关于设计模式(创建型、结构型、行为型)
设计模式的概念设计模式最开始是由GoF(Gang of Four)提出的。他们在书中提供了23种设计模式,并且首次利用java语言程序实现了。设计模式是一种发现,并非发明。设计模式的主要特点:与语言无关,可以用多种语言实现。动态的,随时会有新模式引入。可以进行定制,对开发人员非常有用。这是针对目前所有设计问题的好东西。这是一个卓越的、特别明智的解决问题的方法。在设计方面,很多东西...
2020-05-04 17:54:09
439
原创 如何理解python的面向对象(详解,设计模式引导)
理解面向对象编程:举例:我们以对象Car为例子进行说明,对象Car不仅拥有多种属性,如fuel_level(油位), speed(速度),steering_whell(方向盘)等等属性。还拥有一些方法,如accel_erate()提供速度,takeleft()提供向左转向。在python中一切皆对象,每个类的实例或变量都有其自身的内存地址。1.对象他们表示所开发的应用程序内的实体实体之间...
2020-05-04 15:28:05
642
原创 Django组件之modelform
前言经历了前面的纯手写我的form逻辑,以及我们的Django的form组件,终于来到了ModelForm组件了。ModelForm是我们form与model的结合很是强大。ModelForm:我直接写在了views.py里面,这是个不好的习惯知道吧,我是为了方便:在这里面class Meta: 的Meta是大写的请注意。class BookForm(ModelForm): cl...
2020-03-26 17:55:51
275
原创 Django组件之 form(modelform的引导)
form功能生成HTML标签验证用户数据(亦可以显示错误信息error)form表单保留上次提交的数据初始化页面显示的内容我们在这里一一讲解,友情闪现到上一篇:纯手写篇为了方便我这里没有直接创建一个forms文件。而是直接在views中直接写我们的Form的代码,大家还是自己创建一个forms文件好一点,都在一个目录下面是会破坏代码的耦合度的。创建一个BookForm类:cla...
2020-03-24 15:56:29
412
原创 项目中生成requests.txt文件(virtualenv与pipreqs)
相信每个人在开发项目的时候总会遇到把一个项目从一个电脑到另外一个电脑搭建环境和环境的部署的那种痛苦,如果你的项目是使用的virtualenv环境的话就可以使用pip freeze > requirements 生成,pip install -r 路径/requirements.txt 安装python的第三方包的list,但是你没有虚拟环境,你根本分不清这个项目使用了多少个包。这时候你是不...
2020-03-23 16:53:59
1674
原创 使用POP3收取邮件
第一个用于下载邮件的协议称为邮局协议(Post Office Protocal POP),现在最新版本是3所以称为POP3.关于POP31.pop3收取的邮件并不是一个可以直接阅读的邮件,而是一个原始文本的邮件,这和SMTP有些相似,SMTP发送的也是经过编码后的一段文本。2.由于pop3 收取的邮件是原始文本,所以需要使用到email模块进行解析原始文本。使其变成可阅读对象。3.1 使...
2020-03-18 17:42:45
1438
原创 制作谷歌浏览器插件基础篇
制作由来今天受到同事制作一个小插件的影响,我特地百度查看一波怎么制作谷歌浏览器插件的,制作原因确实因为这个有点好玩。需掌握技能谷歌浏览器插件一个很小的程序。制作插件是为了方便个人操作。只要你会html, JavaScript,css基本就可以进行手动开发浏览器插件了。牛刀小试创建一个manifest.json文件无论是什么插件都必须拥有这个文件。这是一个描述插件配置信息的文件。...
2020-03-17 22:18:59
415
原创 SMTP协议之发送邮件(纯文本,HTML以及附件邮件)
1.关于SMTPSMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。2.关于qq邮箱授权码我使用的qq邮箱,是要开启qq授权码等功能才能登陆以及发送邮件。其它邮箱也应该是差不多的。这个自己直接百度一下就有详细教程了。...
2020-03-12 11:50:57
4155
原创 from 某包 import 某模块 的问题(ModuleNotFoundError: No module named 'email.parser')
这是一个很是低级的错误,今天居然犯了,当然也是随意命名导致的。特此发个blog来提醒自己吧!我在搞自己的邮箱的时候test的时候。导入from email.parser import Parser居然报错了。而且我自己导入的是python自带的内置模块怎么会报错呢?(ModuleNotFoundError: No module named ‘email.parser’)我一直在想这是什么鬼,后...
2020-03-07 11:51:58
4756
1
原创 一个简单的网络共享下载网盘(需python3.6.1及以上)
环境安装:python3.6.1及以上1. pip install uvicorn2. pip install fastapi3. pip install aiofiles如果觉得这样安装太慢,那就选择国内源安装吧! 我这展示一个豆瓣源安装:pip install uvicorn -i https://pypi.douban.com/simple接下来就编写代码吧:我们在Downloa...
2020-02-21 11:19:48
844
原创 Django的form表单(Django的form以及modelform的引导)
前言:在一个网站中肯定会有大量的表单提交,但是如果每个表单都需要我们自己全部生写的话,就比较难受了,所以Django中的modelform就很有意思了。Django中的form:木有对比就没有伤害。所以要知道Django的modelform的好,就要从普通的form来对比。form:先创建一个form_test的Django项目:里面有有个app01 :的app。目录如下;...
2020-01-14 11:13:38
953
原创 Django的url路径自动添加问题(末尾自动添加/)
我们来观察一个现象:在这里可以看到,无论是访问user视图还是访问role视图。访问后url最后都会添加一个斜杠结尾,很多人都认为这是浏览器自动添加的,那我们再看看这个呗:看这个图的后半段,你会发现百度,csdn这些网站访问根本就不会自动添加/说明这不是浏览器自动添加的。因为这是dajngo自动添加的。我们只需在settings.py设置:APPEND_SLASH=False这样...
2020-01-06 11:36:02
4480
原创 基于Django的RBAC组件(menu显示)进阶篇(四)
我们之前权限中的list分类的东东,因为edit,delete,add这些都不适合放在menu,所以就放list下的东东。list相关,那我们重新拿数据库中的字段信息了,menu中,至少需要url,title,这两个字段,然后是list分类下的。所以我们需要list,url,title这三个字段呢!我们需要在permission_url.py末尾添加这几行代码:版本1:# 唯有list的u...
2020-01-06 10:46:55
812
原创 基于Django的RBAC组件(按钮的细粒度权限)进阶篇(三)
前言 :我这边使用002账号登录:其权限只有这几个:只有查看和添加用户的权限,但是你看看我们这个网页中,既然用户没有权限,为什么还要给别人选项,这不是给人心里添堵吗。所以我们需要进行细粒度权限 没有权限就不需要给别人显示这个选项。细粒度权限控制 前面url的权限已经完善了,所以我们需要更细粒度的权限控制的时候就需要用到我们,进阶篇(二) 那时添加的表字段了,里面我们不是添加了一个acti...
2020-01-03 13:54:07
1108
1
原创 基于Django的RBAC组件(角色的访问控制)进阶篇(二)
之前这个基础版有其局限性,当我们进行更细粒度的权限控制时会显得比较乏力。所以在这进阶篇中,我们进行了改进。对数据库表以及表字段进行了增加完善。所以看不懂的话,可以先看看基础版现在开始正题:首先我们先对 app01/views.py中的这两个函数进行修改def user(request): user_obj = User.objects.all() return render(...
2020-01-02 10:34:52
898
原创 基于Django的RBAC组件(角色的访问控制)基础版(一)
关于RBACRBAC是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很方便。RBAC实际上也就是 Who 、What、How之间的关系,也就是Who对What进...
2019-12-17 14:31:57
2139
8
原创 实现优先级队列
question: 现在想实现一个能够以给定的优先级来对元素排序,且每次pop操作时都会返回优先级最高的那个元素。solution: 利用heapq实现一个简单的优先级队列。import heapqclass PriorityQueue: def __init__(self): self._queue = [] self._index = 0 ...
2019-08-30 11:54:30
597
原创 mongodb的基本操作
1.mongodb创建数据库(如果数据库不存在,则创建数据库,否则切换到指定数据库。)use 数据库名1.1 你创建数据库后,使用查看数据库 show dbs 是不会显示出来的,要向里面插入数据后才能显示( **db.stu.insert({“title”:“插入测试”,“content”:“插入成功”})))**stu是集合(表)的名字1.2 MongoDB 中默认的数据库为 test,...
2019-08-20 09:47:18
347
原创 多层列表嵌套展开(生成器版)yield from实例
如果你有一个这样多层嵌套的列表:a = [1, 2, 3, [4, [5, 6, 7], 8], 9, 10, [11, 12, 13], 14]如果你要把它平铺成这样:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]很多人都会使用递归加循环来师兄:# -*- coding: utf-8 -*-# @Time : 2019/7/30 ...
2019-08-01 23:59:37
1616
原创 自定制命令(让scrapy在pycharm下跑起来)
pytcharm运行单个爬虫:# -*- coding: utf-8 -*-# @Time : 2019/7/19 下午 5:19# @Author : lh# @Email : xx@lh.com# @File : manage.py# @Software: PyCharmimport sysfrom scrapy.cmdline import execute...
2019-07-20 10:54:04
238
原创 scrapy的pipeline(持久化)
我这边已经创建好一个名为scrapy_pipeline的项目了。然后创建一个爬虫为douban:项目目录如下:爬取豆瓣网需要伪装浏览器,修改settings.py文件的内容:# Crawl responsibly by identifying yourself (and your website) on the user-agent#USER_AGENT = 'scrapy_pipeli...
2019-07-19 21:46:20
911
原创 scrapy中设置代理的三种方式(内置(2),自定义(1))
爬虫经常会用到代理ip如果你用你的ip可能用不了多久就会被封掉的,这时候就要使用代理ip了:scrapy里面其实有内置的代理拓展,源码这边我就不一一说明了直接说如何使用:要使用代码必须要在爬虫开始前:所以第一种的使用是在我们的start_request里面:内置(1): def start_requests(self): # 这里是代理ip import o...
2019-07-19 10:08:51
14644
原创 scrapy爬虫没有任何的返回数据( Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min))
在scrapy中爬取不到任何返回值。G:\scrapy_tesy>scrapy crawl douban2019-07-11 10:26:15 [scrapy.utils.log] INFO: Scrapy 1.6.0 started (bot: scrapy_tesy)2019-07-11 10:26:15 [scrapy.utils.log] INFO: Versions: lxm...
2019-07-11 10:43:26
15181
11
原创 scrapy的安装
linu下的安装pip install scrapywindows下的安装在win下面的安装依赖多一点,而且还需要安装一个已经编译好的Twisted的库,和安装一个pywin32库1.安装scrapy直接安装是会报错的:去这个网站下载下载你对应的python版本的库。安装pip install刚刚下载的那个文件然后即可安装scrapy了pip install scrapy...
2019-07-10 16:06:10
154
原创 SQLAlchemy的使用
SQLAlchemy是一个基于python实现的ORM框架。该框架建立在DB API之上,使用关系对象映射进行数据库操作,简而言之就是,将类和对象转化为sql,然后使用API执行SQL并获取执行结果。1.安装SQLAlchemypip install sqlalchemy组成部分:Engine,框架的引擎Connection Pooling ,数据库连接池Dialect,选择连接数...
2019-06-28 15:43:02
215
原创 通过字符串引入模块下的属性
flask中可以配置一个字符串导入settings下的配置文件app.config.from_object("settings.ProductionConfig")这里就是来讲解一下这个到底是怎么实现的。例1:
2019-06-25 00:23:31
121
原创 flask中配置文件的导入(方便型)
1.在根目录下创建一个settings.py文件# -*- coding: utf-8 -*-# @Time : 2019/6/17 下午 2:00# @Author : lh# @Email : 22@qq.com# @File : settings.py# @Software: PyCharmclass Config(object): DEBUG = ...
2019-06-24 22:00:54
656
django 博客
2018-01-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人