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