⑴ Python 有哪些好的 Web 框架
Django, Pyramid, Bottle, Tornado, Flask, web2py.
具體介紹如下:
Django:開源Web開發框架,它鼓勵快速開發,並遵循MVC設計,開發周期短。
Tornado:一個輕量級的Web框架,內置非阻塞式伺服器,而且速度相當快
webpy:一個小巧靈活的Web框架,雖然簡單但是功能強大。
Flask:一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI 工具箱採用 Werkzeug ,模板引擎則使用 Jinja2 。
Bottle:一個Python Web框架,整個框架只有一個文件,幾十K,卻自帶了路徑映射、模板、簡單的資料庫訪問等web框架組件,確實是個可用的框架。初學web開發可以拿來玩玩,其語法簡單,部署也很方便。
⑵ Python Web 框架哪個入門快Django、Tornado、web.py
做blog django省力,定義models, 寫個前台基本就搞定了。 tornado靈活, 不用非同步特性單純作個輕框架寫法和webpy也差不多。 webpy作者都走了那麼久了, 這類單人主導的項目沒經歷正常過度,等一些現有應用遷出完畢,少量維護者出離, 項目本身就正式宣告死亡了, 完全不該考慮了
⑶ Python 有哪些好的 Web 框架
1、Django
Python中最全能的Web開發框架,各種功能完備,可維護性和開發速度都一級棒,不少人反應Django框架慢,它主要慢在DjangoORM與資料庫的交互上,所以是否使用Django框架,需要取決於項目對資料庫交互的要求以及各種優化,而對於Django的同步特性導致吞吐量小的問題,可以通過Celery等解決,這並不是一個致命問題。
2、Tornado
非同步,性能強悍,然而它相比Django框架來說,相對原始,很多東西需要自己去處理,隨著項目的逐漸擴大,框架所能提供的功能也會越來越小,更多的東西需要團隊自己去實現,而大項目往往需要性能的保證,這時它就是最佳的選擇。
3、Flask
微框架,可以說是Python代碼寫得最好的項目之一,它的靈活性也是把雙刃劍,能使用好Flask框架,即可以做成Pinterest,用不好就是災難,它是一個微框架,但也可以做成規模化的Flask,加上它可以自由選擇自己的資料庫交互組件,而且加上celery+redis等非同步特性之後,Flask的性能相對Tornado也不相上下,也許Flask的靈活性可能是某些團隊更需要的。
4、Twisted
前面提到的3個Web框架都是圍繞應用層HTTP展開的,而Twisted則不同,它是一個用Python語言編寫的事件驅動的網路框架,對於追求伺服器性能的應用,它是個非常不錯的選擇。
它支持很多協議,包括傳輸層的UDP、TCP、TLS,以及應用層的HTTP、FTP等,對於這些協議,Twisted提供了客戶端和伺服器方面的開發工具。
它是一個高性能的編程框架,在不同的操作系統上,Twisted利用不同的底層技術實現了高性能通信,在開發方法上,Twisted引導程序員使用非同步編程模型,它提供了豐富的Defer、Threading等特性來支持非同步編程。
⑷ 一個並發的網站,Tornado與flask應該選哪一個
【Tornado】 是 FriendFeed 使用的可擴展的非阻塞式 web 伺服器及其相關工具的開源版本。這個 Web 框架看起來有些像web.py 或者 Google 的 webapp,不過為了能有效利用非阻塞式伺服器環境,這個 Web 框架還包含了一些相關的有用工具 和優化。 Tornado 和現在的主流 Web 伺服器框架(包括大多數 Python 的框架)有著明顯的區別:它是非阻塞式伺服器,而且速度相當快。得利於其 非阻塞的方式和對 epoll 的運用,Tornado 每秒可以處理數以千計的連接,這意味著對於實時 Web 服務來說,Tornado 是一個理想的 Web 框架。我們開發這個 Web 伺服器的主要目的就是為了處理 FriendFeed 的實時功能 ——在 FriendFeed 的應用里每一個活動用戶都會保持著一個伺服器連接。 【Flask】是一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI 工具箱採用 Werkzeug ,模板引擎則使用 Jinja2 。 Flask使用 BSD 授權。 Flask也被稱為 「microframework」 ,因為它使用簡單的核心,用 extension 增加其他功能。Flask沒有默認使用的資料庫、窗體驗證工具。然而,Flask保留了擴增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗證工具、文件上傳、各種開放式身份驗證技術。最新版本為0.10
⑸ Tornado獲取參數
1. get_argument(name,default=_ARG_DEFAULT,strip=True)
2. get_arguments(name,strip=True)
3. get_body_argument(name,default=_ARG_DEFAULT,strip=True)
4. get_body_arguments(name,strip=True)
5. get_query_argument(name,default=_ARG_DEFAULT,strip=True)
6. get_query_arguments(name,strip=True):
一 RequestHandler.get_argument()和RequestHandler.get_arguments():
實際上是通過RequestHandler._get_argument()和RequestHandler._get_arguments()對HTTPServerRequest.arguments進行一些去空格,編碼,默認值等操作。HTTPServerRequest.arguments包括GET和POST請求的所有參數。
get_argument()實際上是獲取的get_arguments()[-1]。
二 RequestHandler.get_query_argument()和RequestHandler.get_query_arguments():
實際上是通過RequestHandler._get_argument()和RequestHandler._get_arguments()對HTTPServerRequest.query_arguments進行一些去空格,編碼,默認值等操作。HTTPServerRequest.query_arguments只包括請求的url上所帶的參數。
二 RequestHandler.get_body_argument()和RequestHandler.get_body_arguments():
HTTPServerRequest.body_arguments只包括請求body里所帶的參數。
1. 獲取url後的參數
url = '127.0.0.1:8080/test?search_title=測試標題1&search_title=測試標題2&search_name=測試名稱&test_body=測試'
若存在多個重復的參數名,利用get_argument(),get_query_argument只能獲取最後一個,即'測試標題2'。利用get_arguments(),get_query_arguments()能獲得一個unicode編碼的list,得到所有相同參數名的參數。
get_body_argument(),get_body_arguments()不能獲取url中的參數。
2. form表單序列化後的數據。
表單中多個同名<input name='step_title' />,利用get_arguments()和get_body_arguments()獲取list。
3. js相關
var data = {'test_arg', 'v1'} // 同個'test_arg'獲取
var list_data = {'test_arg', ['v1', 'v2']} // 通過'test_list[]'獲取
1. tornado/web.py
2. tornado/httputil.py
3. tornado/escape.py
⑹ Python 有哪些好的 Web 框架
常見的5種Web框架:
第一個:Django
Django是一個開源的Web應用框架,由Python寫成,支持許多資料庫引擎,可以讓Web開發變得迅速和可擴展,並會不斷的版本更新以匹配Python最新版本,如果是新手程序員,可以從這個框架入手。
第二個:Flask
Flask是一個輕量級的Web應用框架,使用Python編寫。基於WerkzeugWSGI工具箱和JinJa2模板引擎,使用BSD授權。
Flask也被稱為microframework,因為它使用簡單的核心,用extension增加其他功能。Flask沒有默認使用的資料庫、窗體驗證工具。然而Flask保留了擴增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗證工具、文件上傳、各種開放式身份驗證技術。
第三個:Web2py
Web2py是一個用Python語言編寫的免費的開源Web框架,旨在敏捷快速的開發Web應用,具有快速、可擴展、安全以及可移植的資料庫驅動的應用,遵循LGPLv3開源協議。
Web2py提供一站式的解決方案,整個開發過程都可以在瀏覽器上進行,提供了Web版的在線開發,HTML模板編寫,靜態文件的上傳,資料庫的編寫的功能。其他的還有日誌功能,以及一個自動化的admin介面。
第四個:Tornado
Tornado即是一個Webserver,同時又是一個類web.py的micro-framework,作為框架的Tornado的思想主要來源於web.PY,大家在web.PY的網站首頁也可以看到Tornado的大佬Bret
Taylor的這么一段話:「[web.py inspired the] Web framework we use at FriendFeed [and] thewebapp framework that ships with App Engine…」,因為這層關系,後面不再單獨討論Tornado。
第五個:CherryPy
CherryPy是一個用於Python的、簡單而非常有用的Web框架,其主要作用是以盡可能少的操作將Web伺服器與Python代碼連接,其功能包括內置的分析功能、靈活的插件系統以及一次運行多個HTTP伺服器的功能,可運行在最新版本的Python、Jython、android上。
⑺ tornado 接受請求報錯
網路上經常有些不知所謂的人提問說我的代碼報錯,但就是不給出代碼.我對於這種人的回答只有一個: 你的代碼寫錯了,你要再問哪裡錯了,為什麼錯了,我只能說,你TMD又沒給代碼我看!!!我怎知道
你的代碼寫錯了,你要再問哪裡錯了,為什麼錯了,我只能說,你TMD又沒給代碼我看!!!我怎知道
你的代碼寫錯了,你要再問哪裡錯了,為什麼錯了,我只能說,你TMD又沒給代碼我看!!!我怎知道
你的代碼寫錯了,你要再問哪裡錯了,為什麼錯了,我只能說,你TMD又沒給代碼我看!!!我怎知道
你的代碼寫錯了,你要再問哪裡錯了,為什麼錯了,我只能說,你TMD又沒給代碼我看!!!我怎知道
你的代碼寫錯了,你要再問哪裡錯了,為什麼錯了,我只能說,你TMD又沒給代碼我看!!!我怎知道
你的代碼寫錯了,你要再問哪裡錯了,為什麼錯了,我只能說,你TMD又沒給代碼我看!!!我怎知道
你的代碼寫錯了,你要再問哪裡錯了,為什麼錯了,我只能說,你TMD又沒給代碼我看!!!我怎知道
⑻ Python幾種主流框架比較
從GitHub中整理出的15個最受歡迎的Python開源框架。這些框架包括事件I/O,OLAP,Web開發,高性能網路通信,測試,爬蟲等。
Django: Python Web應用開發框架
Django 應該是最出名的Python框架,GAE甚至Erlang都有框架受它影響。Django是走大而全的方向,它最出名的是其全自動化的管理後台:只需要使用起ORM,做簡單的對象定義,它就能自動生成資料庫結構、以及全功能的管理後台。
Diesel:基於Greenlet的事件I/O框架
Diesel提供一個整潔的API來編寫網路客戶端和伺服器。支持TCP和UDP。
Flask:一個用Python編寫的輕量級Web應用框架
Flask是一個使用Python編寫的輕量級Web應用框架。基於Werkzeug WSGI工具箱和Jinja2
模板引擎。Flask也被稱為「microframework」,因為它使用簡單的核心,用extension增加其他功能。Flask沒有默認使用的數
據庫、窗體驗證工具。
Cubes:輕量級Python OLAP框架
Cubes是一個輕量級Python框架,包含OLAP、多維數據分析和瀏覽聚合數據(aggregated data)等工具。
Kartograph.py:創造矢量地圖的輕量級Python框架
Kartograph是一個Python庫,用來為ESRI生成SVG地圖。Kartograph.py目前仍處於beta階段,你可以在virtualenv環境下來測試。
Pulsar:Python的事件驅動並發框架
Pulsar是一個事件驅動的並發框架,有了pulsar,你可以寫出在不同進程或線程中運行一個或多個活動的非同步伺服器。
Web2py:全棧式Web框架
Web2py是一個為Python語言提供的全功能Web應用框架,旨在敏捷快速的開發Web應用,具有快速、安全以及可移植的資料庫驅動的應用,兼容Google App Engine。
Falcon:構建雲API和網路應用後端的高性能Python框架
Falcon是一個構建雲API的高性能Python框架,它鼓勵使用REST架構風格,盡可能以最少的力氣做最多的事情。
Dpark:Python版的Spark
DPark是Spark的Python克隆,是一個Python實現的分布式計算框架,可以非常方便地實現大規模數據處理和迭代計算。DPark由豆瓣實現,目前豆瓣內部的絕大多數數據分析都使用DPark完成,正日趨完善。
Buildbot:基於Python的持續集成測試框架
Buildbot是一個開源框架,可以自動化軟體構建、測試和發布等過程。每當代碼有改變,伺服器要求不同平台上的客戶端立即進行代碼構建和測試,收集並報告不同平台的構建和測試結果。
Zerorpc:基於ZeroMQ的高性能分布式RPC框架
Zerorpc是一個基於ZeroMQ和MessagePack開發的遠程過程調用協議(RPC)實現。和 Zerorpc 一起使用的 Service API 被稱為 zeroservice。Zerorpc 可以通過編程或命令行方式調用。
Bottle: 微型Python Web框架
Bottle是一個簡單高效的遵循WSGI的微型python Web框架。說微型,是因為它只有一個文件,除Python標准庫外,它不依賴於任何第三方模塊。
Tornado:非同步非阻塞IO的Python Web框架
Tornado的全稱是Torado Web Server,從名字上看就可知道它可以用作Web伺服器,但同時它也是一個Python Web的開發框架。最初是在FriendFeed公司的網站上使用,FaceBook收購了之後便開源了出來。
webpy: 輕量級的Python Web框架
webpy的設計理念力求精簡(Keep it simple and powerful),源碼很簡短,只提供一個框架所必須的東西,不依賴大量的第三方模塊,它沒有URL路由、沒有模板也沒有資料庫的訪問。
Scrapy:Python的爬蟲框架
Scrapy是一個使用Python編寫的,輕量級的,簡單輕巧,並且使用起來非常的方便。
⑼ Tornado與flask的特點和區別有哪些
1、Tornado 特點
Tornado 是 FriendFeed 使用的可擴展的非阻塞式 web 伺服器及其相關工具的開
源版本。這個 Web 框架看起來有些像 web.py 或者 Google 的 webapp,不過為了
能有效利用非阻塞式伺服器環境,這個 Web 框架還包含了一些相關的有用工具和
優化。
2、Flask
Flask 是一個微型的 Python 開發的 Web 框架,整個框架只有一個文件,幾十K,卻自帶了路徑映射、模板、簡單的資料庫訪問等web框架組件,確實是個可用的框架。語法簡單,部署很方便。
核心特徵
路由:使用一個簡單但有力的模式語法,映射 URLs 到代碼。
模板:快速的內建模板引擎,並且支持 mako、jinja2 和 cheetah 模板。
伺服器:內建 HTTP 開發伺服器,並支持 paste、fapws3、flup、cherrypy
或其它任何有 WSGI 功能的伺服器。
無依賴:所有東西都在一個單一的文件中,並且不依賴其它任何 Python 標准庫。
示例代碼:
from flask import Flask
app = Flask(__name__)
@app.route(「/」)
def hello():
return 「Hello World!」
if __name__ == 「__main__」:
app.run()
==========================================
————————————-
Bottle
————————————-
3、區別
Tornado 和現在的主流 Web 伺服器框架有著明顯的區別:是非阻塞式伺服器,而且速度相當快。得利於其 非阻塞的方式和對epoll 的運用,Tornado 每秒可以處理數以千計的連接,這意味著對於實時 Web服務來說,Tornado 是一個理想的 Web 框架。開發這個 Web 伺服器的主要目的就是為了處理 FriendFeed 的實時功能 ——在 FriendFeed 的應用里每一個活動用戶都會保持著一個伺服器連接。