作為一名程序員,還是必須要會(huì)開發(fā)網(wǎng)站的,不然別人都會(huì)懷疑你是不是程序員了。今天,主要介紹一下如何使用python來(lái)搭建一個(gè)網(wǎng)站??赡苡腥藭?huì)覺得搭建網(wǎng)站不都應(yīng)該用java么?python的性能那么低。的確,使用java來(lái)開發(fā)網(wǎng)站的確要比python多的多。但實(shí)際上還是有很多大型的網(wǎng)站都是使用python搭建起來(lái)的,如國(guó)外最大的視頻分析網(wǎng)站YouTube、國(guó)內(nèi)的豆瓣、搜狐以及知乎等都是使用python開發(fā)的。使用python常用搭建網(wǎng)站的框架有Django、tornado、web.py、web2py、CherryPy、Flask、Bottle、Quixote等。用的比較多的有Django、tornado、Flask。下面主要來(lái)介紹一下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ù)庫(kù)中的表與類對(duì)應(yīng)起來(lái)操作數(shù)據(jù)庫(kù)的時(shí)候不用寫SQL語(yǔ)句直接操作對(duì)象來(lái)完成對(duì)表的操作,在使用Django框架的時(shí)候只要先定義好類然后再通過兩句命令就可以完成自動(dòng)的數(shù)據(jù)建表,類似于hibernate的ORM,一流的URL設(shè)計(jì)、設(shè)計(jì)者友好的模板語(yǔ)言、緩存系統(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è)壞處,第三方庫(kù)相對(duì)比較少,而且很多的東西還需要自己配置,不過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開發(fā)的,整個(gè)服務(wù)器只有幾M。而且占用的內(nèi)存少,并發(fā)能力強(qiáng),像百度、京東、新浪、網(wǎng)易、騰訊、淘寶都使用了nginx。
版權(quán)保護(hù): 本文【python可以做網(wǎng)站么(python能做網(wǎng)站開發(fā)嗎)】由信途科技長(zhǎng)沙網(wǎng)站建設(shè)發(fā)布,轉(zhuǎn)載請(qǐng)保留鏈接: http://macbookprostickers.com/jzxx/2616.html
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。