在基于python的网页开发框架中,tornado可谓是独树一织。
第一次了解到tornado框架,还是在网上找到的python网站开发框架对比文章中
这里简单介绍一下python网站最常见的3个开发框架:
1、Django
这个框架可谓是声名在外了,想必只要想用python开发网站的同学,都听说过这个框架;能想到网站开发模块基本都有了,而且还有杰出的ORM支持,快速上手是一个非常好的选择。
但是因为本人喜欢折腾,而且本人是大数据专业,需要框架对超高并发的支持,果断弃之。
2、Flask
flask 很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。
Flask 框架学会以后,可以考虑学习插件的使用。例如使用 WTForm + Flask-WTForm 来验证表单数据,用 SQLAlchemy + Flask-SQLAlchemy 来对你的数据库进行控制
本人由于被tornado的超高并发吸引,未使用上述框架
3 、Tornado
由facebook开源出来的超高并发框架,利用异步协程机制,实现比多线程更高的性能爆发,绝对是高并发类网站的首选,知乎网就是用这个框架开发的,性能超高。
当然,缺点也是有的,很多东西需要自己写,也没有很好的ORM支持;但是,作为一个喜欢自己折腾和不受限制的本人来说,这个是我的最爱。
好了,接下来详细介绍如何安装Tornado, 基于python3
安装非常简单,只需要在云主机中一行命令即可(需要先安装完成python3):
python -m pip install tornado
接下来,新建一个普通的python项目,并需要生成一些文件及文件夹,主要包括如下:
我已经建好的文件目录结构见下图(红框中是必须要有的,其他文件夹和文件是我自己开发为了方便单独加的)
1、application.py
全局环境设置,包括静态目录设置、模板目录设置、是否debug,及可能需要用到的cookies加密设置
写入代码如下:
from url import url
import tornado.web
import os
settings = dict(
template_path = os.path.join(os.path.dirname(__file__), "templates"),
static_path = os.path.join(os.path.dirname(__file__), "statics"),
debug=True #生产环境去掉
)
application = tornado.web.Application(
handlers = url,
**settings
)
2、server.py
启动tornado服务主文件,主要包括web的访问URL及端口配置
如下代码:
#!/usr/bin/env Python
# coding=utf-8
import tornado.ioloop
import tornado.options
import tornado.httpserver
from application import application
from tornado.options import define, options
import settings
define("port", default = 80, help = "run on the given port", type = int)
def main():
#启动网站进程
tornado.options.parse_command_line()
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(options.port)
host='127.0.0.1';
print ("Development server is running at http://%s:%s" % (host,options.port))
print ("Quit the server with Control-C")
loop=tornado.ioloop.IOLoop.instance();
tornado.autoreload.start(loop); #更改代码无需重启时需要,只在开发环境
loop.start();
if __name__ == "__main__":
main()
3、url.py
URL路由,即用来配置访问某个URL路径时,该具体定位到哪个HTML文件
加入如下代码:
#!/usr/bin/env Python
# coding=utf-8
"""
the url structure of website
"""
import sys #utf-8,兼容汉字
from importlib import reload
reload(sys)
from handlers.index import IndexHandler
url = [
#网站各项功能
(r'/', IndexHandler)
]
说明:通过URL路径’/’,访问IndexHandler对应的HTML文件,通过上方import目录可以看到,这个文件在handlers文件夹里。
4、handles 文件夹
用来具体处理网页动态交互请求,里面主要是get和post方法中的逻辑开发。
5、statics 文件夹
用来存放网页需要的CSS样式表文件、Javascript文件及图片、视频等静态网页内容,这个文件夹的特征是,通过浏览器URL路径可直接访问,所以不要存放需要保密的后台程序文件
6、templates 文件夹
用来存放静态HTML文件。
总结:
实际上tornado只是一种开发框架和思想,后端语言底层都是python,你完全可以按照你自己的想法修改文件夹路径和作用;
只是这种开发思路能够形成一个统一的开发框架,便于形成标准化的python开发解决方案。
文末福利来啦!
免费云主机领取:
云主机开发环境领取,即开即用好了,tornado初探就先到这里,下一节讲述如何生成你的第一个网页!