作為一名程序員,還是必須要會開發(fā)網(wǎng)站的,不然別人都會懷疑你是不是程序員了。今天,主要介紹一下如何使用python來搭建一個網(wǎng)站??赡苡腥藭X得搭建網(wǎng)站不都應該用java么?python的性能那么低。的確,使用java來開發(fā)網(wǎng)站的確要比python多的多。但實際上還是有很多大型的網(wǎng)站都是使用python搭建起來的,如國外最大的視頻分析網(wǎng)站YouTube、國內的豆瓣、搜狐以及知乎等都是使用python開發(fā)的。使用python常用搭建網(wǎng)站的框架有Django、tornado、web.py、web2py、CherryPy、Flask、Bottle、Quixote等。用的比較多的有Django、tornado、Flask。下面主要來介紹一下tornado和django。
一、Django
Django是一個開發(fā)源代碼的web應用框架是用python寫的。采用了MVC的框架,開發(fā)網(wǎng)站的應該都知道MVC,模型、視圖、控制器,這里有點像java的spring框架。Django的核心組件有,創(chuàng)建模型的對象關系映射,就是將數(shù)據(jù)庫中的表與類對應起來操作數(shù)據(jù)庫的時候不用寫SQL語句直接操作對象來完成對表的操作,在使用Django框架的時候只要先定義好類然后再通過兩句命令就可以完成自動的數(shù)據(jù)建表,類似于hibernate的ORM,一流的URL設計、設計者友好的模板語言、緩存系統(tǒng)。缺點就是Django不支持異步,所以它還是比較適合小型的壓力不大的項目,對于高并發(fā)的處理就扛不住了。學好Django找一份工作還是不成問題的。
二、tornado
tornado也是一種開放源代碼的服務器,tornado與Django等主流框架有這最明顯的區(qū)別就是它是非阻塞式的服務器,而且速度相當快,tornado每秒可以處理數(shù)以千計的連接,所以tornado是實時web服務的一個理想框架,如果結合nignx一起使用可以處理的連接會更多。但是,tornado有一個壞處,第三方庫相對比較少,而且很多的東西還需要自己配置,不過tornado的靈活性還是比較強可以與其他的框架結合一起使用。tornado不支持ORM操作,在下一篇文章中,我會介紹如何將tornado、Django和nignx一起結合來搭建一個網(wǎng)站。下面用一張圖對比一下,我為什么要選擇tornado+nginx,使用Django的目的是為了方便操作數(shù)據(jù)庫。
服務器并發(fā)處理對比
三、nginx
nginx是一個高性能的HTTP和方向代理服務器,也是一個IMAP/POP3/SMTP服務器。nginx是一款輕量級的web服務器,它是用c開發(fā)的,整個服務器只有幾M。而且占用的內存少,并發(fā)能力強,像百度、京東、新浪、網(wǎng)易、騰訊、淘寶都使用了nginx。
掃描二維碼推送至手機訪問。
版權聲明:本文由信途科技轉載于網(wǎng)絡,如有侵權聯(lián)系站長刪除。