Python_框架

一、Python Web应用开发框架:Django,Tornado,Flask,...

1.Django(文档:https://docs.djangoproject.com/zh-hans/2.2/

Django:Python界最全能的web开发框架,功能完备,可维护性和开发效率高;其性能扩展有限,采用Django的项目,在流量达到一定规模后,都需要对其进行重构,才能满足性能的要求。Django最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。Django提供的方便,也意味着Django内置的ORM跟框架内的其他模块耦合程度高,而Django ORM与数据库的交互慢。Django同步特性导致吞吐量小可以通过Celery等解决。Django的项目代表:Instagram,Guardian

 

2.Tornado

Tornado(异步非阻塞IO的Python Web框架):天生异步,性能强悍,然而Tornado相比Django是较为原始的框架,诸多内容需要自己去处理。随着项目越来越大,框架能够提供的功能占比越来越小,更多的内容需要团队自己去实现,而大项目往往需要性能的保证,这时候Tornado就是比较好的选择。官方用nginx反向代理的方式部署Tornado和其它Python web应用框架进行对比,结果最大浏览量超过第二名近40%。Tornado项目代表:知乎

Hello World示例程序

import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
  def get(self):
    self.write("Hello World")
application = tornado.web.Application([
  (r"/",MainHandler)
])
if __name__ = "__main__":
  application.listen(8888)
  tornado.ioloop.IOLoop.instance().start()

 

3.Flask

Flask:微框架的典范,基于Werkzeug WSGI工具箱和Jinja2模板引擎,使用BSD授权,号称Python代码写得最好的项目之一。Flask没有默认使用的数据库、窗体验证工具;Flask保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。Flask可以选择自己的数据库交互组件(通常是Flask-SQLAlchemy),加上celery+redis等异步特性以后,Flask的性能相对Tornado也不逞多让。Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能。能做好Flask,可以做成Pinterest,用不好就是灾难

特性:1)内置开发用服务器和debugger;2)集成单元测试(unit testing);3)RESTful request dispatching;4)使用Jinja2模板引擎;5)支持secure cookies(client side sessions);6)100% WSGI 1.0兼容;7)Unicode based;8)详细的文件、教学;9)Google App Engine兼容;10)可用Extensions增加其他功能

Flask代码        

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
  return "Hello World!"

if __name__ == "__main__":
  app.run()

Flask配置简单

$ pip install Flask
$ python hello.py
  * Runing on http://local:5000

二、爬虫框架:Scrapy,Pyspider,...

1.Scrapy(Scrapy中文文档:http://www.scrapyd.cn/doc/)(Scrapy英文文档:https://doc.scrapy.org/en/latest/

Scrapy主要包括了以下组件:

1)引擎,用来处理整个系统的数据流处理,触发事务。

2)调度器,用来接受引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回。

3)下载器,用于下载网页内容,并将网页内容返回给蜘蛛。

4)蜘蛛,蜘蛛是主要干活的,用它来制订特定域名或网页的解析规则。

5)项目管道,负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几个特定的次序处理数据。

6)下载器中间件,位于Scrapy引擎和下载器之间的钩子框架,主要是处理Scrapy引擎与下载器之间的请求及响应。

7)蜘蛛中间件,介于Scrapy引擎和蜘蛛之间的钩子框架,主要工作是处理蜘蛛的响应输入和请求输出。

8)调度中间件,介于Scrapy引擎和调度之间的中间件,从Scrapy引擎发送到调度的请求和响应。

使用Scrapy可以很方便的完成网上数据的采集工作,它为我们完成了大量的工作,而不需要自己费大力气去开发。

 

2.Pyspider(文档:http://docs.pyspider.org/en/latest/

原文地址:https://www.jianshu.com/u/5c167916989d

Pyspider与Scrapy:如果要快速实现一个页面的抓取,推荐使用pyspider,开发更加便捷;如果要应对

反爬程度很强、超大规模的抓取,推荐使用scrapy



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值