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