
小练手
文章平均质量分 82
sf131097
这个作者很懒,什么都没留下…
展开
-
wsgi简介,flask和scrapy的简单使用
WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。def application(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return [b'<h1>Hello, web!</h1>']enviro...原创 2018-03-06 21:14:43 · 2196 阅读 · 0 评论 -
python协程的前世今生,future、yield、loop、task,yield from各个关键字详细图解
异步实现的三种方式:1、callback,callback注册2、添加到队列3、placeholder(站位), yield future协程式的优点:1、无cpu分时切换线程保存上下文问题(协程上下文怎么保存)2、遇到io阻塞切换(怎么实现的)3、无需共享数据的保护锁(为什么)关键概念:1、协程式都是由loop调用2、生成器函数(参数)得到一个生成器对象g...原创 2018-05-20 22:30:56 · 2878 阅读 · 0 评论 -
python元类使用经验总结
基础概念: type类是所有类的元类,所有类可以通过type(name, bases, attrs) name是新建类的名字,bases是基类的列表,attrs是类方法类变量这些属性py3创建元类的方法:class NewClass(bases, metaclass=SayMetaClass)class SayMetaClass(type): def __new__(cls...原创 2018-06-05 20:41:07 · 676 阅读 · 0 评论 -
利用Django实现RESTful API
https://www.cnblogs.com/zhouyang123200/p/6606405.htmlRESTful API现在很流行,这里是它的介绍 理解RESTful架构和 RESTful API设计指南.按照Django的常规方法当然也可以实现REST,但有一种更快捷、强大的方法,那就是 Django REST framework.它是python的一个模块,通过在Django里面配置就...转载 2018-06-05 20:43:47 · 1385 阅读 · 0 评论 -
python win32学习
COM是Microsoft的一项技术,它允许对象进行通信,而无需任何对象知道有关对方的任何细节,甚至是其实施的语言。# SimpleCOMServer.py - A sample COM server - almost as small as they come!## We expose a single method in a Python COM object.class Pyt...原创 2018-08-27 21:47:31 · 1053 阅读 · 0 评论 -
一个开源分布式博客blog_xtg的分析
原文地址:https://github.com/xtg20121013/blog_xtg阅读知识点准备:tornadis用法concurrent.futures.ThreadPoolExecutor任务用法orm的用法-sqlalchemy的用法apscheduler的TornadoScheduler的用法main.py里面依次做了三件事:tornado的appl...原创 2018-09-17 15:58:45 · 862 阅读 · 0 评论 -
selenium+beautifulsoup模拟翻页
#coding=utf-8import unittestfrom selenium import webdriverfrom bs4 import BeautifulSoupclass douyuSelenium(unittest.TestCase): def setUp(self): self.driver = webdriver.PhantomJS()...原创 2018-09-27 16:50:09 · 1502 阅读 · 0 评论 -
无题 --待续
1. url设计中减少动词add和del,请求的时候用put和deleteGET一般用于获取/查询 资源信息,后台操作是安全和幂等的,而POST一般用于更新 资源信息,安全级别更高(数据在body里面而不是url后面),每次操作都产生不一样的结果2. 返回结果中减少用ok, success,error,而应该用请求的状态码来直接标识例如tornado: set_status(statu...原创 2018-11-05 14:37:26 · 141 阅读 · 0 评论 -
flask快速搭建
工程结构如下,全局的static和template目录: 1、main.py,读取设置,注册蓝图即各个模块,然后初始化数据库orm,app运行 #coding=utf-8from sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmaker,scoped_sessionfrom flask impo...原创 2018-12-28 11:01:37 · 382 阅读 · 0 评论 -
redis实战读后感(六)-使用Reids构建应用程序组件
1.构建两个前缀匹配自动补全程序补全最近访问的网站,补全登录用户名,邮件补全,本地数据库驱动的。recent:user - list 联系人def fetch_autocomplete_list(conn, user, prefix): candidates = conn.lrange('recent:'+user, 0, -1) return [c for c in candid...原创 2018-03-26 23:06:17 · 197 阅读 · 0 评论 -
redis实战读后感(五)-构建支持程序
1.最新日志建立一个个list,保存在list结构里面,并对长度进行修剪(守护进程定期修剪好像也可以)recent:name:serverity - list message2.常见日志对当前时间进行分析,如果到下一个小时则备份之前的记录和起始时间。common:name:serverity - zsort message :...原创 2018-03-21 23:07:05 · 224 阅读 · 0 评论 -
redis实战读后感(三)-Redis命令
字符串:当存储一个值到字符串时候,如果可以被解释为十进制整数或者浮点数,那么Redis会觉察到这一点,并允许INCR或者DECR操作,如果不存在则从0开始;Python版本incr支持incrby,incrfloat支持incrbyfloat对字符还支持append,getrange,getbit,setbit列表:阻塞命令最常见的就是消息传奇和任务队列。列表有些场景和有序集合差不多,关键看有序集...原创 2018-03-15 22:44:48 · 206 阅读 · 0 评论 -
python利用百度知道求答题答案
import jsonimport requestsfrom bs4 import BeautifulSoup as BSfrom urllib import parse#解析问题和答案def open_question(): with open("tounao.txt","r",encoding="utf-8") as f: res = f.read(...原创 2018-03-03 13:48:35 · 593 阅读 · 0 评论 -
经典动态规划问题,任务分配插值最小
weight = [1, 2, 7, 3, 6, 4, 2, 3, 8, 9, 1, 23, 6, 22]n = len(weight)m = (sum(weight)+1)//2#动态规划表,多放置了0行0列,方便计算optp = [[0 for i in range(m+1)]for j in range(n+1)]for j in range(1,n+1): for i ...原创 2018-03-03 16:06:48 · 1517 阅读 · 0 评论 -
redis实战读后感(四)-数据安全与性能保障
1快照持久化(损失一部分数据)可以创建快照来获取存储在内存里面的数据在某个时间点的副本。BGSAVE:额外的子进程完成写入SAVE:期间不在响应任何其他命令save 60 10000:周期自动保存快照BGSAVESHUTDOWN or TERM信号:save后关闭'''conn:redis连接, path:日志路径, callback:行处理回调函数 '''def process_logs(co...原创 2018-03-17 19:28:50 · 257 阅读 · 0 评论 -
IPProxy代理分析
web.py 搭建本地小服务urls = ( '/', 'select', '/delete', 'delete')def start_api_server(): sys.argv.append('0.0.0.0:%s' % config.API_PORT) app = web.application(urls, globals()) app.run(...原创 2018-03-04 16:13:06 · 1533 阅读 · 0 评论 -
putty系脚本提升自测效率
set tpath="C:\Program Files (x86)\Tesgine\tools"cd /d %tpath%set protocol=dhcpv6set codepath=Dhcpv6set port=5006set pwd=xxxxrem 本地拷贝到linuxpscp -q -r -pw %pwd% D:\xstream-protocol.git\%codepath% roo...原创 2018-03-12 20:30:48 · 1459 阅读 · 0 评论 -
redis实战读后感(一)-对文章投票
对文章进行投票逻辑(评分=createtime+1天的秒数/200×票数):1.给文章投票:判断文章的时间未超过一周,返回判断用户可以加入,则投票加分、文章信息更新2.发布获取文章:创建文章信息,创建用户投票系统,利用expire创建发布时间,创建文章初始评分3.取出评分最高的文章,取出最新的文章获取最高的文章(最新的文章)倒序最高的序列,根据id找到文章信息,返回4.对文章分组将文章加入组的集合...原创 2018-03-12 22:16:56 · 414 阅读 · 0 评论 -
redis实战读后感(二)-构建web应用
散列:cookie令牌和已登录用户,最近登录用户有序集合,用户浏览过商品的有序集合1.用户登录检查登录用户:更新令牌:更新散列表,更新最近登录用户有序集合,更新用户浏览过商品的有序集合,zremrangebyrank删除多余商品定期清理会话:如果最近登录用户有序集合超过限制,则最多移除100个用户(redis能达到每s清除10000令牌),并删除散列和对应的浏览商品记录(和购物车)...原创 2018-03-13 23:41:41 · 172 阅读 · 0 评论