随笔分类 - python
摘要:概述 环境: python3.4, Django1.9.6 准备工作 首先要搞到微信公众平台开发者ID和开发者密码,这个在公众号平台的公众号开发信息里查看和修改 然后在IP白名单中,把服务器的IP加进去。 最后在公众号设置--功能设置里 把域名加进去 添加域名的时候,会看到提示下载一个txt文件,放到web服务器;这里我是把它放在static目录下,然后给它单独做了个url,单独写了vie...
阅读全文
摘要:以SQLit3为例: import sqlite3 conn = sqlite3.connect('db.sqlite3') #获取游标对象 cur = conn.cursor() #执行一系列SQL语句 #建立一张表 #cur.execute("create table demo(num int, str vachar(20));") #插入一些记录 cur.execute("insert...
阅读全文
摘要:FTP服务的主动模式和被动模式 在开始之前,先聊一下FTP的主动模式和被动模式,两者的区别 , 用两张图来表示可能会更加清晰一些: 主动模式: 主动模式工作过程: 1. 客户端以随机非特权端口N,就是大于1024的端口,对server端21端口发起连接 2. 客户端开始监听 N+1端口; 3. 服务端会主动以20端口连接到客户端的N+1端口。 主动模式的优点: 服务端配置简单,利于服务器安全管理...
阅读全文
摘要:看一下做出来的验证码长啥样 验证码分析 1. 有很多点 2. 有很多线条 3. 有字母,有数字 需要用到的模块: 1. random 2. Pillow (python3中使用pillow) 安装pillow : pip install pillow pillow的用法: 创建一张图片: from PIL import Image, ImageDraw, ImageFont, Image...
阅读全文
摘要:models.py: from django.db import models # Create your models here. class Publisher(models.Model): name = models.CharField(max_length=255, verbose_name='出版社') address = models.CharField(max_l...
阅读全文
摘要:yield实现斐波那契序列: Send: send函数用来向fib_iter发送数据,这样数据就可以双向流动。我们尝试使用send来模拟一个比较慢的生成器,我们让它一秒钟生成一个数: yield from 是什么? 在上面的yield中,我们通过for循环使用__next__()方法来获取下一个值,
阅读全文
摘要:rabbitmq的安装(ubuntu): echo 'deb http://www.rabbitmq.com/debian/ testing main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list wget -O- https://www.rabbitmq.com/rabbitmq-signing-key-p...
阅读全文
摘要:1. 先安装crul和git 2. 安装pyenv 3. 添加pyenv到环境变量 使用pyenv 1). 查看可安装的Python版本:那些只有版本号没有名字的就是python 2) 安装python3.5.2 3) 查看已安装的python版本 4) 切换python版本 使用虚拟环境: 1)
阅读全文
摘要:__str__ 首先看个例子: >>> class Student(object): ... def __init__(self, name): ... self.name = name ... >>> print(Student('Michael')) 这样打印出的不好看, 给它定制一下: >>> class Student(object): ... def ...
阅读全文
摘要:假设我们要实现以下4种动物: Dog - 狗狗; Bat - 蝙蝠; Parrot - 鹦鹉; Ostrich - 鸵鸟。 按类型可以分类:哺乳动物,鸟类 按功能可以分类: 会飞的,会跑的 使用类的多重继承: class Animal(object): pass # 大类: class Mammal(Animal): pass class Bird(Animal): ...
阅读全文
摘要:实例属性通过self或实例变量来定义,注意__init__方法中定义的是实例属性: class Student(object): def __init__(self, name): self.name = name s1 = Student('Bob') #给实例添加一个属性 s1.score = 90 s2 = Student('Jim') 在实例s1中添加一个属...
阅读全文
摘要:1. 执行效率极高。因为子程序切换不是线程切换,而是由程序自身控制,因此没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。 2. 不需要多线程的锁机制, 因为只有一个线程,不存在写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了。 协程始终只是一个线程执行,那如何得用多核CPU呢? 最简单的办法就是多进程+协程, 可获得极高的性能、python对协程的支持是通过gen...
阅读全文
摘要:最简单的并发 import socket response = 'HTTP/1.1 200 OK\r\nConnection:Close\r\nContent-Length:11\r\n\r\nHello World' server = socket.socket() server.bind(('0.0.0.0', 9527)) server.listen(1024) while True:...
阅读全文
摘要:python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。 import sys class WebServer(object): def __init__(self, host, port): self.host = host ...
阅读全文
摘要:第一步: 先定义三个类: class Animal: def __init__(self, name): self.name = name #这个方法的意思是,如果继承该类,就得自己写talk方法,如果不写,就抛出异常 def talk(self): raise NotImplementedError("subclass m...
阅读全文
摘要:高级的 文件、文件夹、压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中: #源码 def copyfileobj(fsrc, fdst, length=16*1024): """copy data from file-like object fsrc to file-like object fdst""" ...
阅读全文
摘要:可以执行shell命令的相关模块和函数有: os.system os.spawn* os.popen* --废弃 popen2.* --废弃 commands.* --废弃,3.x中被移除 上面这些命令,可以使用subprocess完美的实现,而且具有丰富的功能: call: python3.5以下才有, python3.5及以上变成...
阅读全文
摘要:面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象则是根据模板创建的实例,通过实例对象可以执行类中的函数 class Role(object): #创建类 def __init__(self, name, ro...
阅读全文
摘要:前面学习了pickle,这两个可以将数据持久化存储到硬盘上,在实际应用中,我们可能会多次将数据dump到同一文件里,试一下: import pickle data = {'k1':123, 'k2':123} data1 = {'d1':111, 'd2':222} #先dump一次 with open('data.pkl', 'wb') as f: pickle.dump(data, ...
阅读全文
摘要:这是用于序列化的两个模块: json: 用于字符串和python数据类型间进行转换 pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:dumps、dump、loads、load pickle模块提供了四个功能:dumps、dump、loads、load import pickle data = {'k1':123, 'k2':123} #d...
阅读全文
浙公网安备 33010602011771号