Python之web框架浅谈
""" <axiner>声明: (错了另刂扌丁我) (如若有误,请记得指出哟,谢谢了!!!) """ Web application frameworks(网络应用框架),简称:web框架,用于构建web应用。 以下是axiner自制的一张简图: 工作原理简易说明: 1、web服务器(中间件)收到来自客户端(浏览器)的请求(request) 2、中间件对request做一些预处理或者直接response请求 3、再经路由系统查找对应的视图函数来处理请求 4、视图函数根据`业务逻辑控制`的需求将
Tornado-Django-Flask框架...
""" <axiner>声明: (错了另刂扌丁我) (如若有误,请记得指出哟,谢谢了!!!) """ Tornado: 是web server,也是web framework。 非阻塞式服务器,速度相当快。 非阻塞的方式和对epoll的运用,每秒可以处理数以千计的连接...
# eg:
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
不易理解易混淆的词汇(三)
""" <axiner>声明: (错了另刂扌丁我) (如若有误,请记得指出哟,谢谢了!!!) """ 并发: 同一时间,多个程序切换运行在同一cpu 并行: 同一时刻,多个程序分别运行在不同cup 同步异步:消息通信机制 阻塞非阻塞:函数调用机制 ----->>> 同步: 指代码调用io操作时,必须等代io操作完成时才返回 的调用方式 异步: 指代码调用io操作时,不必等代io操作完成时才返回 的调用方式 阻塞: 指调用函数时,当前线程被挂起 非阻塞: 指调用函数时,当前线程不被挂起
pyenv安装及其与pip的相关操作
""" <axiner>声明: (错了另刂扌丁我) (如若有误,请记得指出哟,谢谢了!!!) """ ===================== pyenv与pyenv-virtualenv的安装 ========== pyenv是个多版本Python管理器,可以同时管理多个Python版本共存。 pyenv-virtualenv 是pyenv的一个plugin(插件),可以用来创建基于不同Python版本的干净的虚拟环境。(与virtualenv类似) 1-1 安装开发工具 # yum gr
项目部署之nginx+uwsgi+详解
""" <axiner>声明: (错了另刂扌丁我) (如若有误,请记得指出哟,谢谢了!!!) """ 项目部署之nginx+uwsgi+详解 ======================== 其实也就那么回事,入手了就很简单,但是, 可怕的无非是但是 很多问题还是得经历了才知道..... 下文待续.....
Python多线程与多进程编程(一) 就这么简单
""" <axiner>声明: (错了另刂扌丁我) (如若有误,请记得指出哟,谢谢了!!!) """ 先来了解一个概念,GIL? GIL的全称为Global Interpreter Lock, 全局解释器锁。 Python代码的执行由Python 虚拟机(也叫解释器主循环,CPython版本)来控制,Python 在设计之初就考虑到要在解释器的主循环中,同时只有一个线程在执行,即在任意时刻,只有一个线程在解释器中运行。对Python 虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁能保证
Python多线程与多进程编程(二) 就这么简单
""" <axiner>声明: (错了另刂扌丁我) (如若有误,请记得指出哟,谢谢了!!!) """ 多进程编程>>>见上篇 什么时候用多进程编程? 由于 GIL锁,多线程无法充分多核优势。即在耗cpu时,多线程无法去并行..... 耗cpu的操作时,用多进程编程。如:计算,算法,图形处理... 耗io的操作时,用多线程编程(进程切换代价要高于线程)。如:爬虫时的等待..... python os.fork()可以创建子进程(linux下) eg: import os import time
Python回调(+io多路复用+事件循环)与协程之路,学会了又将提高一个档次
""" <axiner>声明: (错了另刂扌丁我) (如若有误,请记得指出哟,谢谢了!!!) """ 协程是回调(+io多路复用+事件循环)的一个进化.....(自我理解) 协程必然是Python未来的利器。 先占个位,空了再写.....
三十一、scrapy管道的使用
1. pipeline中常用的方法: process_item(self,item,spider): (1)管道类中必须有的函数 (2)实现对item数据的处理 (3)必须return item (能够让权重较低的函数能够获取的参数) (4)参数spider就是yield item的爬虫类对象 spider.name = 爬虫名字 open_spider(self, spider): (1)在爬虫开启的时候仅执行一次 (2)创建数据库链接操作对象;打开文件对象 close_spider(sel
三十二、scrapy中间件的使用
1. scrapy中间件的分类和作用 1.1 scrapy中间件的分类 根据scrapy运行流程中所在位置不同分为: 下载中间件 爬虫中间件 1.2 scrapy中间的作用:预处理request和response对象 如对非200响应的重试(重新构造Request对象yield给引擎) 也可以对header以及cookie进行更换和处理 使用代理ip等 但在scrapy默认的情况下 两种中间件都在middlewares.py一个文件中,爬虫中间件使用方法和下载中间件相同,且功能重复,常使用
三十三、scrapy的crawlspider爬虫
1.crawlspider是什么 回顾之前的代码中,我们有很大一部分时间在寻找下一页的url地址或者是内容的url地址上面,这个过程能更简单一些么? 思路: 从response中提取所有的满足规则的url地址 自动的构造自己requests请求,发送给引擎 对应的crawlspider就可以实现上述需求,能够匹配满足条件的url地址,组装成Reuqest对象后自动发送给引擎,同时能够指定callback函数,即:crawlspider爬虫可以按照规则自动获取连接 crawlspid
记一次虚拟机无法联网
环境:CentOS7 mini x64 安装完虚拟机开始配置网络环境
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens
今日推荐
周排行