
Python
Uzizi
勿忘初心
展开
-
常见正则表达式
一、数字的正则表达式二、字符的正则表达式三、特殊需求正则表达式四、补一、数字的正则表达式1、数字:^[0-9]*$2、n位的数字:^\d{n}$3、至少n位的数字:^\d{n,}$4、m-n位的数字:^\d{m,n}$5、零和非零开头的数字:^(0|[1-9][0-9]*)$6、非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[...原创 2018-05-28 15:42:18 · 8146 阅读 · 0 评论 -
python抓图片
python抓图片转载 2018-06-15 15:01:34 · 263 阅读 · 0 评论 -
windows下搭建flask虚拟环境
安装virtualenvpip install virtualenv创建虚拟环境 先在C盘根目录下创建flask文件夹,作为虚拟环境的根目录,之后创建的不同的虚拟环境都是放在这个目录里面的virtualenv flask_py3激活虚拟环境activate 停止虚拟环境deactivate.bat删除虚拟环境 直接删除目录即可rmvirtuale...原创 2018-06-15 17:09:24 · 617 阅读 · 0 评论 -
python爬虫模拟浏览器的两种方法
爬虫爬取网站出现403,因为站点做了防爬虫的设置一、Herders 属性爬取优快云博客import urllib.requesturl = "http://blog.youkuaiyun.com/hurmishine/article/details/71708030"file = urllib.request.urlopen(url)爬取结果urllib.error.HTTPErr...原创 2018-06-02 15:05:55 · 14852 阅读 · 0 评论 -
session与token
基于session认证所显露的问题Session: 每个用户经过我们的应用认证之后,我们的应用都要在服务端做一次记录,以方便用户下次请求的鉴别,通常而言session都是保存在内存中,而随着认证用户的增多,服务端的开销会明显增大。扩展性: 用户认证之后,服务端做认证记录,如果认证的记录被保存在内存中的话,这意味着用户下次请求还必须要请求在这台服务器上,这样才能拿到授权的资源,这样在分布式的...原创 2018-07-30 22:39:52 · 503 阅读 · 0 评论 -
Python字典与json的异同
json数据是一种数据形式,不具备操作数据的内置函数与方法,所以后端获得json数据,如果想对数据进行提取操作之类的,必须用json.loads()方法将json转化为字典格式。我们先来看一下,python 字典结构:ab = { 'liu' :'liu@python.info', 'Larry' : 'larry@wall.org', 'Matsumo...原创 2018-08-01 04:01:21 · 310 阅读 · 0 评论 -
对蓝图的理解
1、什么是蓝图蓝图:用于实现单个应用的视图、模板、静态文件的集合。2、蓝图的运行机制蓝图是保存了一组将来可以在应用对象上执行的操作。注册路由就是一种操作,当在程序实例上调用route装饰器注册路由时,这个操作将修改对象的url_map路由映射列表。当我们在蓝图对象上调用route装饰器注册路由时,它只是在内部的一个延迟操作记录列表defered_functions中添加了一个项。当...原创 2018-08-22 21:32:57 · 2164 阅读 · 0 评论 -
linux杀死指定端口的进程
netstat -apn | grep 4040kill -9 pid原创 2018-08-02 06:51:23 · 12220 阅读 · 0 评论 -
进一步详解Wsgi
WSGI详解转载 2018-05-27 17:02:21 · 178 阅读 · 0 评论 -
request参数
request参数转载 2018-06-21 19:03:03 · 222 阅读 · 0 评论 -
编码小技巧
pycharm快捷代码块转载 2018-06-06 15:37:45 · 203 阅读 · 0 评论 -
python高级特性
python高级特性转载 2018-05-28 16:19:43 · 137 阅读 · 0 评论 -
ajax中dataType有哪些类型
dataType 类型:String预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值: •”xml”: 返回 XM...原创 2018-05-28 22:02:19 · 45010 阅读 · 3 评论 -
python常用快捷键
最重要的快捷键1. ctrl+shift+A:万能命令行2. shift两次:查看资源文件新建工程第一步操作1. module设置把空包分层去掉,compact empty middle package2. 设置当前的工程是utf-8,设置的Editor-->File Encodings-->全部改成utf-8,注释1. ctrl+/:单行注释...原创 2018-05-29 08:31:25 · 68827 阅读 · 5 评论 -
pycharm使用总结
pycharm使用总结转载 2018-05-29 16:21:13 · 364 阅读 · 0 评论 -
flask虚拟工作环境搭建
一、为什么搭建虚拟环境二、虚拟环境的作用三、搭建虚拟环境的步骤1、安装虚拟环境的命令2、创建虚拟环境的命令四、如何使用虚拟环境五、如何在虚拟环境中安装工具包一、为什么搭建虚拟环境sudo pip install flask==0.10.1使用如上命令,会将flask安装到/usr/local/lib/python2.7/dist-packages路径...原创 2018-06-05 16:18:21 · 339 阅读 · 0 评论 -
windows下安装flask
windows下安装flask转载 2018-06-05 17:12:46 · 381 阅读 · 0 评论 -
python的内存管理
1、==与isis比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象,是否指向同一个内存地址。==比较的是两个对象的内容是否相等,默认会调用对象的_eq_()方法。片段一:>>> a = 256>>> b = 256>>> a is bTrue>原创 2018-05-29 21:58:30 · 273 阅读 · 0 评论 -
编码小技巧
一、字符串翻转>>> a = "codementor">>> print "Reverse is",a[::-1]翻转后的结果为 rotnemedoc二、矩阵转置>>> mat = [[1, 2, 3], [4, 5, 6]]>>> zip(*mat)[(1, 4), (2, 5),原创 2018-06-06 01:52:26 · 366 阅读 · 1 评论 -
浅谈celery
一、架构二、过程1、创建celery应用from celery import Celeryapp=Celery('projectname')2、导入celery配置app.config_from_object('celery_tasks.config')config:broker的选择,选的是redis,broker_url='redis://redis_s...原创 2018-08-23 18:07:35 · 307 阅读 · 1 评论 -
同源策略及跨域处理
一、定义同源:端口协议域名一致,当客户端打开百度,谷歌两个页面,百度的页面执行一个脚本的时候,会检查该脚本是否属于哪个页面,只有跟百度同源的脚本才会执行,否则会给控制台抛出异常二、作用为了安全,防止跨站请求攻击等三、避免同源策略1、DOM同源策略的规避a、hash因为hash的改变并不会引起页面的刷新同时可以通过 window.onhashchange事件监听到hash...原创 2018-08-23 23:46:33 · 437 阅读 · 0 评论 -
mysql基本命令小结
注:本文所用的表一、数据库的操作1、连接数据库2、退出数据库3、显示数据库版本4、显示时间5、查看当前使用的数据库6、查看所有数据库7、创建数据库8、查看创建数据库的语句9、使用数据库10、删除数据库二、数据表的操作1、查看当前数据库中所有表2、创建表3、查看表结构4、查看表的创建语句5、增加表字段6、修改表字段,不重命名版7、修改表字段,重命...原创 2018-08-24 16:10:54 · 316 阅读 · 0 评论 -
redis优缺点
redis的优缺点优点:1 读写性能优异2 支持数据持久化,支持AOF和RDB两种持久化方式3 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离。4 数据结构丰富:除了支持string类型的value外还支持string、hash、set、sortedset、list等数据结构。缺点:1 Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要...原创 2018-08-24 16:12:04 · 279 阅读 · 0 评论 -
GIL锁与互斥锁
Global Interpreter Lock 全局解释器锁 由于Cpython解释器在运行python文件时,Cpython进程与其运行文件所产生的主进程是一个进程(文件进程相当于Cpython的一个线程),Cpython的GIL锁就产生了(Cpython的一个线程)当python文件中的线程想要执行其代码,必须获得GIL权限,否则不能执行互斥锁作用: 互斥锁用于python文件运行进程...原创 2018-09-08 03:37:15 · 507 阅读 · 0 评论 -
异常和断言的区别
异常被捕获后可以不做处理,程序从捕获位置继续执行,断言是无法忽略的,程序在断言失败处立即终止因此断言通常用于调试版本,用来发现程序中的逻辑错误。虽然异常也能起到这样的作用,但是不应该用异常代替断言: 1) 如果发现了逻辑错误,必须修改程序,而不可能在程序中进行处理和恢复,所以不需要 向外传送,没有必要使用异常。 2) 使用断言的开销比异常小得多,而且断言可以从发布版中...原创 2018-09-10 18:13:30 · 2417 阅读 · 0 评论 -
MVC与MVT
1.MVCMVC是众所周知的模式:model(模型)、view(视图)、controller(控制器)用户在页面输入url,转交给url控制器,然后根据url匹配相应的视图函数,viwe会去到models取数据,然后models在数据库中取得数据后返回给视图,视图把要展示的数据返回给模版,然后就输出到页面上。2.MTVDjango也是一个MVC框架,但是在Django中,控制器...原创 2018-08-22 21:33:56 · 1101 阅读 · 0 评论 -
十二步理解装饰器
十二步理解装饰器转载 2018-08-22 21:33:26 · 249 阅读 · 0 评论 -
__new__实现单例模式
class Person(object): def __init__(self, name, age): self.name = name self.age = age def __new__(cls, *args, **kwargs): if not hasattr(cls,'instance'): cls...原创 2018-08-22 21:33:10 · 1222 阅读 · 0 评论 -
linux下切换Python2和python3
linux下切换Python2和python3转载 2018-08-07 20:34:27 · 1096 阅读 · 0 评论 -
高并发的解决方案
在上篇文章我们讲到海量数据的解决方案(缓存、页面、数据库),现在重点讲高并发的解决方案。除了数据量大,另一个常见的问题就是并发量高,很多架构就是针对这个问题设计出来的,下面分別介绍。一、应用和静态资源分离 刚幵始的时候应川和静态资源是保存在一起的,当并发量达到一定程度时就需要将静态资源保存到专门的服务器中,静态资源主要包括图片、视频、js、CSS和一些资源文件等,这些文件因为没有状态,所...原创 2018-08-07 22:39:34 · 492 阅读 · 0 评论 -
python单双三引号的区别
python单引号(‘)、双引号(“)、三引号(”’,”“”) python对字符串的表示方法比c更有灵活性,但是也更难理解。为了在平时使用、看代码过程中对着单引号(‘)、双引号(“)、三引号(”’,”“”)不混淆,知道如何使用,区别是什么。进行如下实验。复制代码单引号(‘)print(‘I can print ” ‘) print(‘-\t-\-\’-%-/-\n’)...原创 2018-03-22 20:30:26 · 1369 阅读 · 0 评论 -
迭代器(Iterator)
迭代器(Iterator)是一个对象,它的工作是遍历并选择序列中的对象,它提供了一种访问一个容器(container)对象中的各个元素,而又不必暴露该对象内部细节的方法。通过迭代器,开发人员不需要了解容器底层的结构,就可以实现对容器的遍历。由于创建迭代器的代价小,因此迭代器通常被称为轻量级的容器。迭代器的使用主要有以下三个方面的注意事项:1)使用容器的iterator()方法返回一个I...原创 2018-04-22 16:24:37 · 238 阅读 · 0 评论 -
关于循环与休眠函数一起用的误区
ef sing(): for i in range(10): print("唱歌...") time.sleep(0.2)def dance(): for i in range(10): print("跳舞...") time.sleep(0.2)sleep函数放在for循环里,循环执行一次,子线程就阻塞了,...原创 2018-04-22 20:10:40 · 1009 阅读 · 0 评论 -
线程进程要点
子线程之间执行是无序的获取当前程序活动线程的列表 thread_list = threading.enumerate()扩展:– 获取活动线程的个数 print("1111-------", threading.active_count()) -创建子线程#name是给子线程重命名,daemon为True是在主线程结束时销毁子线程,销毁子线程需要时间的。args用来接收元组参...原创 2018-04-22 20:55:30 · 176 阅读 · 0 评论 -
完全理解 Python 迭代对象、迭代器、生成器
原文转载 2018-04-22 21:54:41 · 142 阅读 · 0 评论 -
缺省参数,不定长参数小结
单个缺省参数def add_info(name, sex = "男") print("name", name, "sex=", sex)add_info("吴彦祖")add_info("李冰冰", "女")add_info("周杰伦", "奶爸")缺省参数,传参的时候可以传入,也可以不传入,有默认值。多个缺省参数原创 2018-04-23 19:11:25 · 438 阅读 · 0 评论 -
读取文件的三种方式
with open("1.txt", "r") as fh: a = fh.read() print("1:", a)with open("1.txt", "r") as fh: b = fh.readline() print("2:", b)with open("1.txt", "r") as fh:原创 2018-04-23 19:52:33 · 1425 阅读 · 0 评论 -
类与对象总结(魔法方法)
class Cat: def eat(self): # 类里方法的第一个形参,必须是 self print('我能吃东西')类里面方法的第一个参数必须为self,self代表类的实例,而非类。 同一个类的两个实例对象,地址不同魔法方法:_new_(): 对象的创建,是一个静态方法,第一个参数是cls。(想想也是,不可能是self,对象还没创建,哪来的s...原创 2018-04-23 20:45:40 · 292 阅读 · 0 评论 -
为什么要有线程
为什么要有线程转载 2018-04-19 20:20:44 · 540 阅读 · 0 评论 -
with as小结
有一些任务,可能事先需要设置,事后做清理工作。file = open("/tmp/foo.txt")data = file.read()file.close()这里有两个问题。一是可能忘记关闭文件句柄;二是文件读取数据发生异常,没有进行任何处理。下面是处理异常的加强版本:file = open("/tmp/foo.txt")try: data = file.rea...原创 2018-04-17 21:37:32 · 145 阅读 · 0 评论