python高并發(fā)框架 Django適合做大用戶量的系統(tǒng)嗎?
Django適合做大用戶量的系統(tǒng)嗎?這里首先題主需要明白一個(gè)概念,用戶數(shù)量多和并發(fā)量大并不是一個(gè)概念,雖然用戶數(shù)量大往往會(huì)帶來比較大的并發(fā)壓力。Python 雖然是性能比較低的語言,但是大用戶量系統(tǒng)的
Django適合做大用戶量的系統(tǒng)嗎?
這里首先題主需要明白一個(gè)概念,用戶數(shù)量多和并發(fā)量大并不是一個(gè)概念,雖然用戶數(shù)量大往往會(huì)帶來比較大的并發(fā)壓力。
Python 雖然是性能比較低的語言,但是大用戶量系統(tǒng)的性能瓶頸是 IO 而不是語言的執(zhí)行效能。
Python 的幾個(gè)常用 Web 框架,對(duì)于滿足一般橫向擴(kuò)展的互聯(lián)網(wǎng)應(yīng)用的需求是沒有問題的。大用戶系統(tǒng)需要從整體架構(gòu)考慮,比如:
你的 Django 的系統(tǒng)能不能支持集群的橫向擴(kuò)展?比如是不是用到了內(nèi)存中的全局狀態(tài),例如內(nèi)存中的 Session 表、緩存等等。集群的 Django 系統(tǒng)多個(gè)實(shí)例運(yùn)行在不同的服務(wù)器上,就需要對(duì)系統(tǒng)進(jìn)行改造,將全局的 Session、緩存這些保存到外部的數(shù)據(jù)庫或 Redis 種。
后端存儲(chǔ)如果采用 SQL 數(shù)據(jù)庫,數(shù)據(jù)庫系統(tǒng)能不能橫向擴(kuò)展?設(shè)計(jì)的時(shí)候有沒有考慮到分庫分表的支持?
對(duì)于海量用戶數(shù)量的系統(tǒng),設(shè)計(jì)時(shí)還需要考慮高價(jià)值數(shù)據(jù)和低價(jià)值數(shù)據(jù)分開存儲(chǔ),冷數(shù)據(jù)、熱數(shù)據(jù)分開存儲(chǔ)等等。
用Django做web前端如何?
先回答問題,Django不適合做web前端,Django用于做web的后臺(tái)。web前端普遍使用基于jquery的框架完成。我曾將使用Django寫過幾個(gè)網(wǎng)絡(luò)管理程序。下文具體說一說。
Django用來做什么
Django是Python編寫的開源web應(yīng)用框架,采用了MVC的模式,方便快速構(gòu)建web應(yīng)用程序;
Django主要由三個(gè)層次組成,template層用于實(shí)現(xiàn)與前臺(tái)的交互,收集前端發(fā)送的數(shù)據(jù);control層用于處理用戶數(shù)據(jù),實(shí)現(xiàn)業(yè)務(wù)邏輯;model層用于實(shí)現(xiàn)與數(shù)據(jù)庫的連接,將數(shù)據(jù)持久化;
Django的使用非常方便的,集成了大部分的常用功能,用戶不用專門處理session,用戶登陸等應(yīng)用。
前臺(tái)怎么寫
web應(yīng)用程序的前臺(tái)使用基于jquery的框架完成,jquery是使用javascript腳本需要編寫的,簡(jiǎn)化了用戶的編程的難度;
在構(gòu)建web應(yīng)用時(shí),我用的是easyui框架,集成了大部分的控件,比如文本框,各種按鈕,并且有布局功能,可以快速勾畫web應(yīng)用界面。
讀書時(shí)我曾經(jīng)使用java編寫web應(yīng)用,工作后接觸了python,簡(jiǎn)單易用,可以快捷構(gòu)建應(yīng)用,后來使用django框架,將平時(shí)編寫的小應(yīng)用合并成一個(gè)可視化的的網(wǎng)絡(luò)運(yùn)維平臺(tái)。