一个并发的网站,Tornado与flask应该选哪一个
1、Tornado 特点
Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开
源版本。
这个 Web 框架看起来有些像 web.py 或者 Google 的 webapp,不过为了
能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具和
优化。
2、Flask
Flask 是一个微型的 Python 开发的 Web 框架,整个框架只有一个文件,几十K,却自带了路径映射、模板、简单的数据库访问等web框架组件,确实是个可用的框架。
语法简单,部署很方便。
核心特征
路由:使用一个简单但有力的模式语法,映射 URLs 到代码。
模板:快速的内建模板引擎,并且支持 mako、jinja2 和 cheetah 模板。
服务器:内建 HTTP 开发服务器,并支持 paste、fapws3、flup、cherrypy
或其它任何有 WSGI 功能的服务器。
无依赖:所有东西都在一个单一的文件中,并且不依赖其它任何 Python 标准库。
示例代码:
from flask import Flask
app = Flask(__name__)
@app.route(“/”)
def hello():
return “Hello World!”
if __name__ == “__main__”:
app.run()
==========================================
————————————-
Bottle
————————————-
3、区别
Tornado 和现在的主流 Web 服务器框架有着明显的区别:是非阻塞式服务器,而且速度相当快。
得利于其 非阻塞的方式和对epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web服务来说,Tornado 是一个理想的 Web 框架。
开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 FriendFeed 的应用里每一个活动用户都会保持着一个服务器连接。
AGPS和GPS到底有什么区别?
无论是GPS还是A-GPS,主要都是利用设备内的GPS导航芯片来接收导航卫星信号,而GPS芯片接收导航卫星信号都不收费,但定位时间很慢,因为要花几分钟的时间来等待卫星定位到你的设备上的GPS模块后才能进行导航. A-GPS是在接收导航卫星信号的基础上,还通过网络(GPRS)来获得你设备即时所在的通信运营基站的信息(信号基站的位子),就能快速得知你即时所在位子,让卫星快速地定位你的设备.所以A-GPS比GPS定位的时间快.
所以,为了能快速让卫星定位到你的手机,我们在每次使用某种A-GPS前就需要更新一下"GPS加速器",而更新"GPS加速器"时就需要网络,也就是需要GPRS,就会有流量产生,不过很少.所以A-GPS相对于GPS是收费的, 另外,A-GPS需要网络支持才能实现快速定位,如果你某种设备是A-GPS,也可以不用"GPS加速器",直接使用GPS导航,也能导航,但定位时间很慢,因为不使用网络它和普通的GPS一样. 或者最简单的讲,A-GPS就是:先GPRS上网获得所在位子+GPS接收导航卫星信号;而GPS就是只利用接收导航卫星信号来实现导航.
google 怎么变成这样了?有图
从今年5月5号开始,Google搜索开始启用新的外观和界面,首先是网站,接下来是其他37种语言版本的网站,现在,包括谷歌香港在内的所有语言的Google搜索都变成了最新的搜索界面。
这次界面修改可谓翻天覆地,搜索界面发生了巨大变化,左侧增加了导航栏,提供了与用户搜索最相关的搜索工具。
去年,Google曾经推出过搜索百宝箱(Search Options),也是在搜索的侧边栏显示搜索选项,用户可以选择打开或是关闭该功能,通过这种方式Google为用户提供了多种搜索工具。
在现在发布的新UI界面里,Search Options成为固定的左侧搜索工具栏,显示的内容会根据搜索关键字而动态变化,用户点击“更多”后会显示全部搜索选项,包括:所有结果、资讯、博客、图片、视频、地图、购物、图书、动态更新、论坛、问题解答。
其中,“动态更新”为Google的实时搜索功能,包括Twitter、Friendfeed、Buzz等微博的更新,“论坛”则是Google抓取各大论坛、天涯来吧、百度贴吧等社区的帖子,“问题解答”则是问答的搜索,内容来源于天涯问答、百度知道、谷歌支持论坛、搜搜问问等问答网站。
Google称这次改版会使得用户的搜索体验发生巨大变化,目前微软的Bing也是这样的设计,根据我的体验,在普通1024×768的屏幕下,感觉Google新的UI搜索界面并不太令人习惯,搜索界面非常别扭,搜索的内容被压缩在中间一小块,左右两边空着大片的内容,用户视角的核心内容被迫跑到了中间,体验非常不好,但是在大屏幕宽屏显示器下就没这种感觉,宽屏下,感觉新的UI界面内容位置似乎正好合适。
新的界面将使得用户的多样化搜索更为方便,可以更简便的从普通搜索切换到资讯、图片、博客、视频等搜索界面,但是由于Google的前后搜索界面相差太大,用户对于新界面的适应可能要花一段时间,很多用户可能会更习惯原有的UI界面。
friendfeed 哪个国家
FriendFeed的公司位于美国加州芒廷维尤。
FriendFeed的创始人曾经全部就职于Google,并参与了Gmail、Google Maps等等服务的创立。
FriendFeed是一个聚合个人信息的网站,可集成网络社区媒体、社交网络服务、书签网站、博客、微博客的更新,及其他RSS/Atom信源。
用户可将此类信息流量集成到Feed与好友共享、评论。
[1]据官网自述,FriendFeed目标旨在以工具的形式通过现有社交网络发现信息的妙趣,以及实现Web内容的更好相关程度与实用性质。
在网站中可以个人、公司或者团体组织的身份成为注册用户。
node js 可以用来干什么
译文如下:
如果你去年注意过技术方面的新闻,我敢说你至少看到node.js不下一两次。
那么问题来了“node.js是什么?”。
有些人没准会告诉你“这是一种通过JavaScript语言开发web服务端的东西”。
如果这种晦涩解释还没把你搞晕,你没准会接着问:“为什么我们要用node.js?”,别人一般会告诉你:node.js有非阻塞,事件驱动I/O等特性,从而让高并发(high concurrency)在的轮询(Polling)et构建的应用中成为可能。
当你看完这些解释觉得跟看天书一样的时候,你估计也懒得继续问了。
不过没事。
我这篇文章就是在避开高端术语的同时,帮助你你理解node.js的。
浏览器给网站发请求的过程一直没怎么变过。
当浏览器给网站发了请求。
服务器收到了请求,然后开始搜寻被请求的资源。
如果有需要,服务器还会查询一下数据库,最后把响应结果传回浏览器。
不过,在传统的web服务器中(比如Apache),每一个请求都会让服务器创建一个新的进程来处理这个请求。
后来有了Ajax。
有了Ajax,我们就不用每次都请求一个完整的新页面了,取而代之的是,每次只请求需要的部分页面信息就可以了。
这显然是一个进步。
但是比如你要建一个FriendFeed这样的社交网站(类似人人网那样的刷朋友新鲜事的网站),你的好友会随时的推送新的状态,然后你的新鲜事会实时自动刷新。
要达成这个需求,我们需要让用户一直与服务器保持一个有效连接。
目前最简单的实现方法,就是让用户和服务器之间保持长轮询(long polling)。
HTTP请求不是持续的连接,你请求一次,服务器响应一次,然后就完了。
长轮训是一种利用HTTP模拟持续连接的技巧。
具体来说,只要页面载入了,不管你需不需要服务器给你响应信息,你都会给服务器发一个Ajax请求。
这个请求不同于一般的Ajax请求,服务器不会直接给你返回信息,而是它要等着,直到服务器觉得该给你发信息了,它才会响应。
比如,你的好友发了一条新鲜事,服务器就会把这个新鲜事当做响应发给你的浏览器,然后你的浏览器就刷新页面了。
浏览器收到响应刷新完之后,再发送一条新的请求给服务器,这个请求依然不会立即被响应。
于是就开始重复以上步骤。
利用这个方法,可以让浏览器始终保持等待响应的状态。
虽然以上过程依然只有非持续的Http参与,但是我们模拟出了一个看似持续的连接状态
我们再看传统的服务器(比如Apache)。
每次一个新用户连到你的网站上,你的服务器就得开一个连接。
每个连接都需要占一个进程,这些进程大部分时间都是闲着的(比如等着你好友发新鲜事,等好友发完才给用户响应信息。
或者等着数据库返回查询结果什么的)。
虽然这些进程闲着,但是照样占用内存。
这意味着,如果用户连接数的增长到一定规模,你服务器没准就要耗光内存直接瘫了。
这种情况怎么解决?解决方法就是刚才上边说的:非阻塞和事件驱动。
这些概念在我们谈的这个情景里面其实没那么难理解。
你把非阻塞的服务器想象成一个loop循环,这个loop会一直跑下去。
一个新请求来了,这个loop就接了这个请求,把这个请求传给其他的进程(比如传给一个搞数据库查询的进程),然后响应一个回调(callback)。
完事了这loop就接着跑,接其他的请求。
这样下来。
服务器就不会像之前那样傻等着数据库返回结果了。
如果数据库把结果返回来了,loop就把结果传回用户的浏览器,接着继续跑。
在这种方式下,你的服务器的进程就不会闲着等着。
从而在理论上说,同一时刻的数据库查询数量,以及用户的请求数量就没有限制了。
服务器只在用户那边有事件发生的时候才响应,这就是事件驱动。
FriendFeed是用基于Python的非阻塞框架Tornado (知乎也用了这个框架) 来实现上面说的新鲜事功能的。
不过,Node.js就比前者更妙了。
Node.js的应用是通过javascript开发的,然后直接在Google的变态V8引擎上跑。
用了Node.js,你就不用担心用户端的请求会在服务器里跑了一段能够造成阻塞的代码了。
因为javascript本身就是事件驱动的脚本语言。
你回想一下,在给前端写javascript的时候,更多时候你都是在搞事件处理和回调函数。
javascript本身就是给事件处理量身定制的语言。
Node.js还是处于初期阶段。
如果你想开发一个基于Node.js的应用,你应该会需要写一些很底层代码。
但是下一代浏览器很快就要采用WebSocket技术了,从而长轮询也会消失。
在Web开发里,Node.js这种类型的技术只会变得越来越重要。
QQ个性签名
别为自己筑起一堵心墙、我只想为你打开一扇窗、不希望你 与寂寞有染。
手机还留着你的相片、只是心通不了电 相信会有一天 我会静默承受<格式化>的夜
谁又能够诠释./ 这是我想要的生活,
我要用微笑帶过一切去说服明天。
侵蚀着灵魂的东西太多。
我的世界不可能只有爱情的、
︶ 冥冥中似乎有种不可捉摸的命运在低低的吟唱
※ `我知道。
伱是她的、但牵着我的手,我就是伱的
资料再怎么美、人就越会讲故事╰╮ ︶ ̄
︶ 照片再美也是一瞬间,Just so .
BABY 、那些日子 俄不知道能不能陪着你乐╮
今天的俄倾听着你的故事 ╰╮ 不管以前还是现在、俄还是有着阴影
你说我是你的命 ,原来口中的命可以这么卑微、
╮ 亲爱的我把回忆当成放手后的最后拥有
我们的相遇是既来之则安之!
这里还有更多 希望能帮到你~~~