1、学习一种web框架

2、学习mysql数据库,会写sql语句

3、了解简单的HTML和javascript这些前端知识

在基于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开发解决方案。