⑴ 如何部署簡單python + flask應用
我們先寫一個最基本的flask應用:
demo.py
from flask import Flask
app = Flask(**name**)
@app.route('\')
def index():
return 'Hello World.'
if __name__ == __main__:
app.run()
運行這個py文件,打開瀏覽器訪問127.0.0.1:5000就能看到顯示Hello World的頁面 .
如果讓這個flask引用監聽來自公網ip的請求,理論上你跑此程序的機器就相當於一個伺服器了,然而這個伺服器並不完美,所以我們需要nginx和gunicorn來增加它的功能,讓它真刀真槍上生產環境的時候能按要求運行。
flask自帶的WSGI框架性能很差勁,只能適用於開發環境調試使用。我們用專業一點的gunicorn(還有很多其他優秀的框架)替代flask自帶的WSGI框架。
配置完後,通過命令』/usr/local/bin/gunicorn -b127.0.0.1:5000『啟動應用。打開瀏覽器訪問127.0.0.1:5000,同樣能夠得到返回頁面
然而gunicorn也僅僅是一個python的WSGI框架而已,要讓它真正處理來自互聯網的各類訪問功能還是有點欠缺,這時候就需要用到大名鼎鼎的nginx 伺服器來替gunicorn遮風擋雨了。
Ubuntu下安裝nginx可以用命令
sudo apt-get install nginx
安裝後需要進行下配置:
cd /etc/nginx/sites-available
sudo vi test (test為配置名稱,可以根據自己項目進行命名)
test文件的配置為:
server {
listen 80; # 監聽80埠
location / {
proxy_pass http://127.0.0.1:5000; # 代理本機127.0.0.1:5000的服務
}
location /static {
alias /home/ubuntu/myproject/myblog/app/static; # 負載均衡
}
}
cd ..
cd sites-enable
sudo ln -s ../sites-available/lwhile . (創建軟鏈接,別漏掉最後的.)
sudo service nginx reload
sudo service nginx restart
這樣nginx的基本配置文件就寫好了 接下來我們配置進程管理工具supervisor supervisor可以在後面啟動你的python進程,這樣很方便
1.cd /etc/supervisor/conf.d
2.sudo vi test.conf (test為文件名)
[program:test]
command = /usr/local/bin/gunicorn -b127.0.0.1:5000 /home/ubuntu/myproject/test.py
3.sudo supervisorctl
4.reload
5.start test
如果一切正常,做完這所有步驟之後,現在公網的ip訪問你的主機,就可以打開你的flask應用了
⑵ 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上。
⑶ python都有哪些框架
這要看你說的是那些方面的框架
像web框架 flask、django、Tornado
爬蟲 Scrapy、Crawley、Portia
框架多得是,要你需要什麼框架
⑷ Python三大web框架分別是什麼 哪個更好
【導讀】目前,Python比較火的三大web框架有Django、Flask和Tornado,要論這三個Web框架哪個更好的話,建議一點,Django幫我們事先搭建了好多,上手會快一些,學習的話可以先從Django學起,然後再學習Flask和Tornado,下面我們就來具體了解一下Python三大web框架的詳情。
1、Django
Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MTV的框架模式,即模型M,模板T和視圖V。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。
2、Flask
Flask是一個使用Python編寫的輕量級Web應用框架。其 WSGI工具箱採用Werkzeug ,模板引擎則使用 Jinja2
。Flask使用BSD授權。
Flask也被稱為 「microframework」 ,因為它使用簡單的核心,用 extension
增加其他功能。Flask沒有默認使用的資料庫、窗體驗證工具。
Flask 很輕,花很少的成本就能夠開發一個簡單的網站。非常適合初學者學習。Flask 框架學會以後,可以考慮學習插件的使用。例如使用 WTForm +
Flask-WTForm 來驗證表單數據,用 SQLAlchemy + Flask-SQLAlchemy 來對你的資料庫進行控制。
3、Tornado
Tornado是一種 Web 伺服器軟體的開源版本。Tornado 和現在的主流 Web 伺服器框架(包括大多數 Python
的框架)有著明顯的區別:它是非阻塞式伺服器,而且速度相當快。
得利於其 非阻塞的方式和對epoll的運用,Tornado 每秒可以處理數以千計的連接,因此 Tornado 是實時 Web 服務的一個
理想框架。
關於Python三大web框架的簡單介紹,就給大家分享到這里了,當然學習是永無止境的,學習一項技能更是受益終身,所以,只要肯努力學,什麼時候開始都不晚,希望大家抓緊時間進行學習吧。
⑸ 有哪些python框架需要學習
需要學習的python框架有:1、Django,它是一個高級的python web框架,以快速開發和使用簡潔的設計聞名;2、CherryPy,它是歷史最久的框架之一,運行非常穩定且快速;3、Web2Py,它是一個開源、免費的web框架。
常用的五大python框架:
(推薦教程:Python入門教程)
1、Django
Django是一個高級的Python Web框架,以快速開發和實用簡潔的設計聞名。它由經驗豐富的開發人員構建,解決了Web開發的麻煩,因此用戶可以專注於編寫應用程序,而不需要擔心返工。並且它是開源和免費的。
特點:
安全系數高,能幫助開發者規避常見錯誤。
速度特別快,因為它的設計目的是使應用程序非常快地從概念階段過渡到最終階段。
擴展性好。
從21世紀初Django成為開源框架到現在,它一直是最佳的歸檔方式。
2、CherryPy
CherryPy是歷史最久的框架之一,運行非常穩定且快速。該框架允許開發人員構建web應用程序,和以Python為對象的應用程序開發過程類似,因而可在更短的時間內開發更小的源代碼。
從一開始,CherryPy就被證明是高效快速的,並被許多站點用於生產,無論是最簡單的站點,還是有高要求的站點。
特點:
可以在2.7+、3.5+、Jython、Android和PyPy上運行。
內置覆蓋、分析和測試支持。
容易快速運行多個HTTP伺服器(例如,在多個埠上)。
是為部署人員和開發人員提供的最強大的配置系統之一。
靈活的插件系統。
3、Web2Py
Web2Py是一個開源、免費的web框架,用於敏捷開發,其中包括資料庫驅動的web應用程序。它是用Python編寫的,並可用於python編程。它是個全堆棧框架,由開發人員構建功能齊全的web應用程序所需的所有必要組件組成。
特點:
能夠簡化復雜大型應用的開發
支持MVC體系結構
符合Ni配置和安裝要求
提供本地化和國際化支持
4、Bottle
Bottle是一個用於Python的簡單、輕量級、快速的Web伺服器網關介面(WSGI)微web框架。它是作為單個文件模塊分發的,除了Python標准庫之外沒有其他依賴項。它被設計成輕量級,允許快速有效地開發web應用程序。
特點:
內置HTTP伺服器。
允許用戶訪問表單數據、cookie、上傳文件、header和其他http相關元數據。
一個可以同時運行Python 2.5x和3.5x的文件。
5、Flask
Flask是一個微框架,最適合簡單的小項目。該框架基於Jinja 2和Werkzeug開發。這個框架的主要目的是開發一個強大的web應用程序庫。
特點:
包含開發調試器和伺服器
有豐富的文檔
支持安全cookie
基於unicode
單元測試集成支持
⑹ Python 有哪些好的 Web 框架
1、Django框架
優點:是一個高層次Python Web開發框架,特點是開發快速、代碼較少、可擴展性強。Django採用MTV(Model、Template、View)模型組織資源,框架功能豐富,模板擴展選擇最多。對於專業人員來說,Django是當之無愧的Python排名第一的Web開發框架。
缺點:包括一些輕量級應用不需要的功能模塊,不如Flask輕便。過度封裝很多類和方法,直接使用比較簡單,但改動起來比較困難。相比於 C,C++性能,Django性能偏低。模板實現了代碼和樣式完全分離,不允許模板里出現Python代碼,靈活度不夠。另外學習曲線也相對陡峭。
2、Flask框架
優點:Flask是一個Python Web開發的微框架,嚴格來說,它僅提供Web伺服器支持,不提供全棧開發支持。然而,Flask非常輕量、非常簡單,基於它搭建Web系統都以分鍾來計時,特別適合小微原型系統的開發。花少時間、產生可用系統,是非常劃算的選擇。
缺點:對於大型網站開發,需要設計路由映射的規則,否則導致代碼混亂。對新手來說,容易使用低質量的代碼創建 「不良的web應用程序」。
3、Pyramid框架
優點:是一個擴展性很強且靈活的Python Web開發框架。上手十分容易,比較適合中等規模且邊開發邊設計的場景。Pyramid不提供絕對嚴格的框架定義,根據需求可以擴展開發,對高階程序員十分友好。
缺點:國內知名度不高,高級用法需要通過閱讀源代碼獲取靈感。默認使用Chameleon模板,靈活度沒有成為一個要素。
4、web.py框架
優點:正如其名,web.py是一個採用Python作為開發語言的Web框架,簡單且強大。俄羅斯排名第一的Yandex搜索引擎基於這個框架開發,Guido van Rossum認為這是最好的Python Web框架,還需要說別的嗎?有事實作證、有大牛認可,用起來吧!
缺點:Web.py並未像其他框架一樣保持與Python 3兼容性的最新狀態。這不僅意味著缺乏對非同步語法的支持,還意味著缺少對已棄用的函數的錯誤。此外,目前尚不清楚維護者是否有計劃在Python 2到達其支持生命周期結束後保持Web.py的最新狀態。
5、Tornado框架
優點:Tornado是一個基於非同步網路功能庫的Web開發框架,因此,它能支持幾萬個開放連接,Web服務高效穩定。可見,Tornado適合高並發場景下的Web系統,開發過程需要採用Tornado提供的框架,靈活性較差,確定場景後再考慮使用不遲。
缺點:Tornado 5.0改進了與Python的本機非同步功能的集成。因此不再支持Python 3.3.並且Python 3.5用戶必須使用Python 3.5.2或更高版本。Tornado 6.0將需要Python 3.5及更高版本,並將完全放棄Python 2支持。
⑺ python的web開發框架有哪些
1.CubicWeb
CubicWeb的最重要的功能是其代碼的可重用性,由一個個代碼單元組成。它靈活又強大,並且還有一些特別的功能,包括RQL查詢語言和支持有效編碼的語義視圖功能。這是語義Web應用程序的最佳解決方案,並且提供理想的環境。
2.TurboGears
TurboGears也稱為是框架的終結者,因為它雖然有著其他Python框架都有的功能,卻不像其他框架那樣有局限性。它甚至能適用於簡單的微架構項目。它給人的感覺就不像是工作在框架上,而像是在寫新的功能。你可以在幾分鍾之內可以創建一個read-to-extend應用,並且我們可以在網上找到大量的教程。
3.Zope2
Zope是不同Web框架集合在一起的完整家庭。與其他框架相比,zope2在當前的開發環境中對於內容管理系統是相當有限的。
Zope工具包是一個很好的庫資源,允許使用重用代碼和不同的庫。
4.web2py
web2py最重要的因素是其外部零依賴,可以創建、復原、管理和修改在瀏覽器中的應用程序。對於一些簡單的web開發任務,大部分都可以自動化快速開發。程序員甚至不需要再准備單一的開發、調試、測試、部署和資料庫處理的封裝包。內置的Web界面中這些都有,在使用之前也不需要進行安裝。
5.Pylons
靈活性是pylons框架的主要特點之一。它可以將不同Python框架提供的某些最好功能,整合到同一個地方。Pyramid是pylons的第一批產品之一,它把重點放在了快速和靈活開發實踐上。你可以挑選任何你認為可以提高Web開發效率的功能整合到一起。
6.Grok
它由Zope工具包提供支持,並且一開始的時候是作為一個易擴展的Zope工具箱,為了方便那些菜鳥程序員的使用而開發
的。對於Web應用,Grok不但能提供多個構件,還有一個隨時可以提供支持的很好社區。它提供了一種更為簡單和靈活的學習Python的模式。它配備的可DRY方法使得它成為了一個很好的工具。
7.Web.py
之所以說這是一款非常獨特的框架,主要是因為它的簡單性和功能強大的開發能力。你可以用Python語言舒舒服服地編寫web應用程序。你會因為它的零局限性和易用性喜歡上web.py。有些程序員可能會發現它對功能的限制比較少,因為它預留了整合的空間,所以你不必一下子載入所有的功能,尤其是那些你並不需要的。
關於框架選擇的誤區:
1.
哪個框架最好
2. 過分關注性能