摘要: 简介 WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证。 安装: 1 pip3 install wtforms 用户登录注册示例 1. 用户登录 当用户登录时候,需要对用户提交的用户名和密码进行多种格式校验。如: 用户不能为空;用户长度必须大于6; 密码不能为空; 阅读全文
posted @ 2019-05-20 16:39 Hessen丶 阅读(141) 评论(0) 推荐(0) 编辑
摘要: Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返 阅读全文
posted @ 2019-05-08 20:49 Hessen丶 阅读(182) 评论(0) 推荐(0) 编辑
摘要: Django、Flask、Tornado的区别? Django:Python 界最全能的 web 开发框架,battery-include 各种功能完备,可维护性和开发速度一级棒。常有人说 Django 慢,其实主要慢在 Django ORM 与数据库的交互上,所以是否选用 Django,取决于项目 阅读全文
posted @ 2019-05-08 13:54 Hessen丶 阅读(192) 评论(0) 推荐(0) 编辑
摘要: scrapy-redis使用以及剖析 scrapy-redis是一个基于redis的scrapy组件,通过它可以快速实现简单分布式爬虫程序,该组件本质上提供了三大功能: scheduler - 调度器 dupefilter - URL去重规则(被调度器使用) pipeline - 数据持久化 scr 阅读全文
posted @ 2019-05-05 21:23 Hessen丶 阅读(260) 评论(0) 推荐(0) 编辑
摘要: Redis redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/rem 阅读全文
posted @ 2019-05-05 14:02 Hessen丶 阅读(165) 评论(0) 推荐(0) 编辑
摘要: Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但 阅读全文
posted @ 2019-05-05 14:00 Hessen丶 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 可能是史上最牛逼的异步IO模块 知识必备: a. socket客户端 obj = socket() # obj.connect((198.1.1.1,80)) obj.connect((http://dig.chouti.com/,80)) # 阻塞 obj.send('GET /index htt 阅读全文
posted @ 2019-05-02 11:58 Hessen丶 阅读(215) 评论(0) 推荐(0) 编辑
摘要: import gevent import requests from gevent import monkey monkey.patch_all() def fetch_async(method, url, req_kwargs): print(method, url, req_kwargs) re 阅读全文
posted @ 2019-05-01 17:41 Hessen丶 阅读(244) 评论(0) 推荐(0) 编辑
摘要: from tornado.httpclient import AsyncHTTPClient from tornado.httpclient import HTTPRequest from tornado import ioloop def handle_response(response): "" 阅读全文
posted @ 2019-05-01 17:33 Hessen丶 阅读(225) 评论(0) 推荐(0) 编辑
摘要: from twisted.web.client import getPage, defer from twisted.internet import reactor def all_done(arg): reactor.stop() def callback(contents): print(con 阅读全文
posted @ 2019-05-01 17:27 Hessen丶 阅读(125) 评论(0) 推荐(0) 编辑