作为一名程序员,还是必须要会开发网站的,不然别人都会怀疑你是不是程序员了。今天,主要介绍一下如何使用python来搭建一个网站。可能有人会觉得搭建网站不都应该用java么?python的性能那么低。的确,使用java来开发网站的确要比python多的多。但实际上还是有很多大型的网站都是使用python搭建起来的,如国外最大的视频分析网站YouTube、国内的豆瓣、搜狐以及知乎等都是使用python开发的。使用python常用搭建网站的框架有Django、tornado、web.py、web2py、CherryPy、Flask、Bottle、Quixote等。用的比较多的有Django、tornado、Flask。下面主要来介绍一下tornado和django。
一、Django
Django是一个开发源代码的web应用框架是用python写的。采用了MVC的框架,开发网站的应该都知道MVC,模型、视图、控制器,这里有点像java的spring框架。Django的核心组件有,创建模型的对象关系映射,就是将数据库中的表与类对应起来操作数据库的时候不用写SQL语句直接操作对象来完成对表的操作,在使用Django框架的时候只要先定义好类然后再通过两句命令就可以完成自动的数据建表,类似于hibernate的ORM,一流的URL设计、设计者友好的模板语言、缓存系统。缺点就是Django不支持异步,所以它还是比较适合小型的压力不大的项目,对于高并发的处理就扛不住了。学好Django找一份工作还是不成问题的。
二、tornado
tornado也是一种开放源代码的服务器,tornado与Django等主流框架有这最明显的区别就是它是非阻塞式的服务器,而且速度相当快,tornado每秒可以处理数以千计的连接,所以tornado是实时web服务的一个理想框架,如果结合nignx一起使用可以处理的连接会更多。但是,tornado有一个坏处,第三方库相对比较少,而且很多的东西还需要自己配置,不过tornado的灵活性还是比较强可以与其他的框架结合一起使用。tornado不支持ORM操作,在下一篇文章中,我会介绍如何将tornado、Django和nignx一起结合来搭建一个网站。下面用一张图对比一下,我为什么要选择tornado+nginx,使用Django的目的是为了方便操作数据库。
三、nginx
nginx是一个高性能的HTTP和方向代理服务器,也是一个IMAP/POP3/SMTP服务器。nginx是一款轻量级的web服务器,它是用c开发的,整个服务器只有几M。而且占用的内存少,并发能力强,像百度、京东、新浪、网易、腾讯、淘宝都使用了nginx。