python parser 十大頂級(jí)web框架?
十大頂級(jí)web框架?1DjangoDjango是一個(gè)開放源代碼的Web應(yīng)用框架,由Python寫成。按結(jié)構(gòu)了MTV的框架模式,即模型M,模板T和視圖V。它最初的是被開發(fā)來(lái)用于管理勞倫斯出版集團(tuán)旗下的一
十大頂級(jí)web框架?
1Django
Django是一個(gè)開放源代碼的Web應(yīng)用框架,由Python寫成。按結(jié)構(gòu)了MTV的框架模式,即模型M,模板T和視圖V。它最初的是被開發(fā)來(lái)用于管理勞倫斯出版集團(tuán)旗下的一些以新聞內(nèi)容重點(diǎn)的網(wǎng)站的,即是CMS(內(nèi)容管理系統(tǒng))軟件。Django與其他框架比較,它有個(gè)也很獨(dú)有的特性,支持什么orm,將數(shù)據(jù)庫(kù)的操作整體封裝成為python,對(duì)于要區(qū)分多種數(shù)據(jù)庫(kù)的應(yīng)用來(lái)說(shuō)是個(gè)比較比較好的特性。但這種特性,巳經(jīng)有其他庫(kù)完成了,sqlalchemy.
2Flask
Flask是兩個(gè)不使用Python編譯程序的輕量級(jí)Web應(yīng)用框架。其WSGI工具箱常規(guī)Werkzeug,模板引擎則在用Jinja2。Flask建議使用BSD授權(quán)許可。
Flask也被稱為“microframework”,是因?yàn)樗皇褂煤芎?jiǎn)單核心,用extension提升其他功能。Flask沒有設(shè)置成建議使用的數(shù)據(jù)庫(kù)、窗體驗(yàn)證工具。
Flask很輕,花很少很少的成本就還能夠開發(fā)完畢一個(gè)很簡(jiǎn)單網(wǎng)站。太合適初學(xué)者去學(xué)習(xí)。Flask框架學(xué)會(huì)以后,也可以考慮學(xué)習(xí)插件的使用。比如不使用WTFormFlask-WTForm來(lái)驗(yàn)正表單數(shù)據(jù),用SQLAlchemyFlask-SQLAlchemy來(lái)對(duì)你的數(shù)據(jù)庫(kù)接受控制。
3Tornado
Tornado是一種Web 服務(wù)器軟件的開源代碼版本。Tornado和現(xiàn)在的主流Web 服務(wù)器框架(除了大多數(shù)Python的框架)有著肯定的區(qū)別:它是非阻塞式服務(wù)器,但速度也是非常快。
得利于其非會(huì)堵塞的和對(duì)epoll的運(yùn)用,Tornado一秒內(nèi)可以不一次性處理數(shù)以千計(jì)的連接,所以Tornado是實(shí)時(shí)動(dòng)態(tài)Web你服務(wù)的一個(gè)美好的理想框架。但是現(xiàn)在與數(shù)千的框架比較比較,Tornado早被拋在了后面,Django早達(dá)到了它,更不說(shuō)其他框架了,只能說(shuō)Tornado使用純python開發(fā)的性能應(yīng)該不能與其他框架一種依據(jù)cython的新的性能而言。
4
是一個(gè)Python的web框架,它很簡(jiǎn)單不過(guò)功能齊全。是不公開的,不論作用于什么用途都是沒有限制的。但也很的小巧,應(yīng)屬于誰(shuí)于輕量級(jí)的web框架。但這卻不是影響的強(qiáng)橫無(wú)比,而且不使用站了起來(lái)很很簡(jiǎn)單、很然后。在實(shí)際應(yīng)用上,更多的是學(xué)術(shù)上的價(jià)值,只不過(guò)你看的到大量web應(yīng)用的底層,這在當(dāng)今“抽像得很好”的web框架上是學(xué)不了的:)
5Aiohttp
更高性能異步框架,既有客戶端的也有服務(wù)端的,還允許web-socket
6Sanic
與flask相似,并支持什么異步運(yùn)行
7Vibora
旨在增進(jìn)曾經(jīng)的比較快的pythonweb框架。vibora的集高性能依賴于cython實(shí)現(xiàn)的uvloop異步模式框架及cython利用的http_parser,再而且一些cython構(gòu)建的web組件,例如模板,user-route等。目前還處于測(cè)試階段。
8Bottle
Bottle是兩個(gè)簡(jiǎn)單的高效穩(wěn)定的遵循WSGI的發(fā)射器pythonWeb框架。說(shuō)微型,是只不過(guò)它唯有一個(gè)文件,除Python標(biāo)準(zhǔn)庫(kù)外,它不依賴感于任何第三方模塊。
9Falcon
Falcon是兩個(gè)構(gòu)建體系云API的低性能Python框架,它熱情鼓勵(lì)使用REST架構(gòu)風(fēng)格,盡肯定以最多的力氣做最少的事情。
10weppy
性能效果更優(yōu)flask的一個(gè)全棧web框架
sql查詢樹結(jié)構(gòu)?
文法解析的話是可以去搜索SQLparser一類的工具,像Python就有sqlparse。
Parse能夠得到的結(jié)果是SQL的結(jié)構(gòu)語(yǔ)法樹,而填寫的語(yǔ)義不需要自己定義,即每棵樹你所選語(yǔ)句結(jié)構(gòu)如何能遍歷講解,是不能執(zhí)行運(yùn)算也可以是生成目標(biāo)代碼。
你的情況下目標(biāo)代碼應(yīng)該是你們的內(nèi)部語(yǔ)言。
除此之外使用parser庫(kù)之外,也是可以建議參考Antlr。Antlr是一套通用完整的語(yǔ)言回答工具,支持什么各種自定義文法模板。
例如你這個(gè)可以基于條件Antlr上網(wǎng)下載一套標(biāo)準(zhǔn)SQL的文法模板文件,接著給語(yǔ)句規(guī)則填寫填寫的解釋邏輯(執(zhí)行運(yùn)算或生成代碼)再試一下,超過(guò)聲明式地設(shè)計(jì)定制了一個(gè)回答器。
基于Antlr之類的程序優(yōu)點(diǎn)是標(biāo)準(zhǔn)規(guī)范化、易魔獸維護(hù),缺點(diǎn)是全面處理上下文的靈活性還不如設(shè)計(jì)和實(shí)現(xiàn)parser庫(kù)的原生程序。
不管哪種方法,要是你們內(nèi)部語(yǔ)言有解釋器API的話,就在語(yǔ)句回答時(shí)調(diào)用API,可可以省掉目標(biāo)代碼這一環(huán),應(yīng)該是用你們的內(nèi)部庫(kù)實(shí)現(xiàn)一個(gè)SQL解釋器。理論的話這個(gè)可以建議參考虎書。