2020AV天堂网,午夜色色视频,美女黄片免费观看,欧美黄色电影网站,亚洲人在线

新聞資訊

新聞資訊
首頁 > 新聞資訊 > 正文內(nèi)容

python做網(wǎng)站的框架(python做網(wǎng)站教程)

時間:2023-11-15 信途科技新聞資訊

高并發(fā)處理框架—— Tornado

Tornado 是使用 Python 編寫的一個強大的可擴展的 Web 服務(wù)器。它在處理高網(wǎng)絡(luò)流量時表現(xiàn)得足夠強健,卻在創(chuàng)建和編寫時有著足夠的輕量級,并能夠被用在大量的應(yīng)用和工具中。Tornado 作為 FriendFeed 網(wǎng)站的基礎(chǔ)框架,于2009年9月10日發(fā)布,目前已經(jīng)獲得了很多社區(qū)的支持,并且在一系列不同的場合中得到應(yīng)用。除 FriendFeed 和 Facebook 外,還有很多公司在生產(chǎn)上轉(zhuǎn)向Tornado,包括 Quora、Turntable.fm、Bit.ly、Hipmunk 及 MyYearbook 等。

相對于其他 Python 網(wǎng)絡(luò)框架,Tornado 有如下特點。

完備的 Web 框架:與 Django、Flask 等一樣,Tornado 也提供了 URL 路由映射、Request 上下文、基于模板的頁面渲染技術(shù)等開發(fā) Web 應(yīng)用的必備工具。

是一個高效的網(wǎng)絡(luò)庫,性能與 Twisted、Gevent 等底層 Python 框架相媲美:提供了異步 I/O 支持、超時事件處理。這使得 Tornado 除了可以作為 Web 應(yīng)用服務(wù)器框架,還可以用來做爬蟲應(yīng)用、物聯(lián)網(wǎng)關(guān)、游戲服務(wù)器等后臺應(yīng)用。

提供高效 HTTPClient:除了服務(wù)器端框架,Tornado 還提供了基于異步框架的HTTP 客戶端。

提供高效的內(nèi)部 HTTP 服務(wù)器:雖然其他 Python 網(wǎng)絡(luò)框架(Django、Flask)也提供了內(nèi)部 HTTP 服務(wù)器,但它們的 HTTP 服務(wù)器由于性能原因只能用于測試環(huán)境。而 Tornado 的HTTP服務(wù)器與 Tornado 異步調(diào)用緊密結(jié)合,可以直接用于生產(chǎn)環(huán)境。

完備的 WebSocket 支持:WebSocket 是 HTML5 的一種新標準,實現(xiàn)了瀏覽器與服務(wù)器之間的雙向?qū)崟r通信。

因為 Tornado 的上述特點,Tornado 常被用作大型站點的接口服務(wù)框架,而不像 Django 那樣著眼于建立完整的大型網(wǎng)站,所以本章著重講解 Tornado 的異步及協(xié)程編程、身份認證框架、獨特的非 WSGI 部署方式。

支持快速建站的框架——Flask

Flask 是 Python Web 框架族里比較年輕的一個,于 2010 年出現(xiàn),這使得它吸收了其他框架的優(yōu)點,并且把自己的主要領(lǐng)域定義在了微小項目上。同時,它是可擴展的,F(xiàn)lask 讓開發(fā)者自己選擇用什么數(shù)據(jù)庫插件存儲他們的數(shù)據(jù)。很多功能簡單但性能卓越的網(wǎng)站就是基于 Flask 框架而搭建的,比如 http://httpbin.org/ 就是一個功能簡單但性能強大的 HTTP 測試項目。Flask 是一個面向簡單需求和小型應(yīng)用的微框架。

相對于其他 Python 語言的 Web 框架而言,F(xiàn)lask 的特點可以歸結(jié)如下。

內(nèi)置開發(fā)服務(wù)器和調(diào)試器

網(wǎng)絡(luò)程序調(diào)試是在將編制好的網(wǎng)站投入實際運行前,用手工或編譯程序等方法進行測試,修正語法錯誤和邏輯錯誤的過程。有經(jīng)驗的開發(fā)者都知道,這是保證網(wǎng)站系統(tǒng)能夠正式應(yīng)用的必要步驟。

Flask 自帶的開發(fā)服務(wù)器使開發(fā)者在調(diào)試程序時無須再安裝其他任何網(wǎng)絡(luò)服務(wù)器,比如 Tomcat、JBoss、Apache 等。Flask 默認處于調(diào)試狀態(tài),使得運行中的任何錯誤會同時向兩個目標發(fā)送信息:一個是 Python Console,即啟動Python 程序的控制臺;另一個是 HTTP 客戶端,即 Flask 開發(fā)服務(wù)器將調(diào)試信息傳遞給了客戶端。

與 Python 單元測試功能無縫銜接

單元測試是對最小軟件開發(fā)單元的測試,其重點測試程序的內(nèi)部結(jié)構(gòu),主要采用白盒測試方法,由開發(fā)人員負責。單元測試的主要目標是保證函數(shù)在給定的輸入狀態(tài)下,能夠得到預想的輸出,在不符合要求時能夠提醒開發(fā)人員進行檢查。

Flask 提供了一個與 Python 自帶的單元測試框架 unitest 無縫銜接的測試接口,即 Flask 對象的 test_client 函數(shù)。通過 test_client 函數(shù),測試程序可以模擬進行 HTTP 訪問的客戶端來調(diào)用 Flask 路由處理函數(shù),并且獲取函數(shù)的輸出來進行自定義的驗證。

使用 Jinja2 模板

將 HTML 頁面與后臺應(yīng)用程序聯(lián)系起來一直是網(wǎng)站程序框架的一個重要目標。Flask 通過使用 Jinja2 模板技術(shù)解決了這個問題。Jinja2 是一個非常靈活的 HTML 模板技術(shù),它是從 Django 模板發(fā)展而來的,但是比 Django 模板使用起來更加自由且更加高效。Jinja2 模板使用配制的語義系統(tǒng),提供靈活的模板繼承技術(shù),自動抗擊 XSS 跨站攻擊并且易于調(diào)試。

完全兼容 WSGI 1.0 標準

WSGI(Web Server Gateway Interface)具有很強的伸縮性且能運行于多線程或多進程環(huán)境下,因為 Python 線程全局鎖的存在,使得 WSGI 的這個特性至關(guān)重要。WSGI 已經(jīng)是 Python 界的一個主要標準,各種大型網(wǎng)路服務(wù)器對其都有良好的支持。WSGI 位于Web應(yīng)用程序與 Web 服務(wù)器之間,與 WSGI 完全兼容使得 Flask 能夠配置到各種大型網(wǎng)絡(luò)服務(wù)器中。

基于 Unicode 編碼

Flask 是完全基于 Unicode 的。這對制作非純 ASCII 字符集的網(wǎng)站來說非常方便。HTTP 本身是基于字節(jié)的,也就是說任何編碼格式都可以在 HTTP 中傳輸。但是,HTTP 要求在 HTTP Head 中顯式地聲明在本次傳輸中所應(yīng)用的編碼格式。在默認情況下,F(xiàn)lask 會自動添加一個 UTF-8 編碼格式的 HTTP Head,使程序員無須擔心編碼的問題。

底層自定義協(xié)議網(wǎng)絡(luò)框架——Twisted

以上講到的 2個 Python Web 框架都是圍繞著應(yīng)用層 HTTP 展開的,而 Twisted是一個例外。Twisted 是一個用 Python 語言編寫的事件驅(qū)動的網(wǎng)絡(luò)框架,對于追求服務(wù)器程序性能的應(yīng)用,Twisted 框架是一個很好的選擇。

Twisted 是一個有著 10 多年歷史的開源事件驅(qū)動框架。Twisted 支持很多種協(xié)議,包括傳輸層的 UDP、TCP、TLS,以及應(yīng)用層的 HTTP、FTP 等。對于所有這些協(xié)議,Twisted 提供了客戶端和服務(wù)器方面的開發(fā)工具。

Twisted 框架的歷史悠久,其主要發(fā)行版本都以 Python 2 為基礎(chǔ),最新的版本為基于 Python 2.7 的 Twisted-15.4.0。Twisted 社區(qū)正在開發(fā)基于 Python 3 的版本,但目前為止尚沒有基于 Python 3 的 Twisted 穩(wěn)定發(fā)行版。

Twisted 是一個高性能的編程框架。在不同的操作系統(tǒng)平臺上,Twisted 利用不同的底層技術(shù)實現(xiàn)了高效能通信。在 Windows 中,Twisted 的實現(xiàn)基于 I/O 完成端口(IOCP,Input/Output Completion Port)技術(shù),它保證了底層高效地將I/O事件通知給框架及應(yīng)用程序;在 Linux 中,Twisted 的實現(xiàn)基于 epoll 技術(shù),epoll是Linux下多路復用 I/O 接口 select/poll 的增強版本,它能顯著提高程序在大量并發(fā)連接中只有少量活躍的情況下的系統(tǒng) CPU 利用率。

在開發(fā)方法上,Twisted引導程序員使用異步編程模型。Twisted 提供了豐富的Defer、Threading等特性來支持異步編程。

企業(yè)級開發(fā)框架——Django

Django 于 2003 年誕生于美國堪薩斯(Kansas)州,最初用來制作在線新聞Web站點,于 2005 年加入了 BSD 許可證家族,成為開源網(wǎng)絡(luò)框架。Django 根據(jù)比利時的爵士音樂家 Django Reinhardt 命名,作者這樣命名 Django 意味著Django 能優(yōu)雅地演奏(開發(fā))功能豐富的樂曲(Web應(yīng)用)。

它是當前Python世界里最負盛名且最成熟的網(wǎng)絡(luò)框架。最初用來制作在線新聞的 Web 站點,目前已發(fā)展為應(yīng)用最廣泛的 Python 網(wǎng)絡(luò)框架。Django 的各模塊之間結(jié)合得比較緊密,所以在功能強大的同時又是一個相對封閉的系統(tǒng),但是其健全的在線文檔及開發(fā)社區(qū),使開發(fā)者在遇到問題時能找到解決方法。

Django 框架的特點

相對于 Python 的其他 Web 框架,Django 的功能是最完整的,Django 定義了服務(wù)發(fā)布、路由映射、模板編程、數(shù)據(jù)處理的一整套功能。這也意味著 Django模塊之間緊密耦合,開發(fā)者需要學習 Django 自己定義的這一整套技術(shù)。Django的主要特點如下。

完善的文檔:經(jīng)過 10 多年的發(fā)展和完善,Django 有廣泛的應(yīng)用和完善的在線文檔,開發(fā)者遇到問題時可以搜索在線文檔尋求解決方案。

集成數(shù)據(jù)訪問組件:Django 的 Model 層自帶數(shù)據(jù)庫 ORM 組件,使開發(fā)者無須學習其他數(shù)據(jù)庫訪問技術(shù)(dbi、SQLAlchemy 等)。

強大的 URL 映射技術(shù):Django 使用正則表達式管理 URL 映射,因此給開發(fā)者帶來了極高的靈活性。

后臺管理系統(tǒng)自動生成:開發(fā)者只需通過簡單的幾行配置和代碼就可以實現(xiàn)完整的后臺數(shù)據(jù)管理 Web 控制臺。

錯誤信息非常完整:在開發(fā)調(diào)試過程中如果出現(xiàn)運行異常,則 Django 可以提供非常完整的錯誤信息幫助開發(fā)者定位問題,比如缺少xxx組件的配置引用等,這樣可以使開發(fā)者馬上改正錯誤。

Django 的組成結(jié)構(gòu)

Django 是遵循MVC架構(gòu)的Web開發(fā)框架,其主要由以下幾部分組成。

管理工具(Management):一套內(nèi)置的創(chuàng)建站點、遷移數(shù)據(jù)、維護靜態(tài)文件的命令工具。

模型(Model):提供數(shù)據(jù)訪問接口和模塊,包括數(shù)據(jù)字段、元數(shù)據(jù)、數(shù)據(jù)關(guān)系等的定義及操作。

視圖(View):Django 的視圖層封裝了 HTTP Request 和 Response 的一系列操作和數(shù)據(jù)流,其主要功能包括URL映射機制、綁定模板等。

模板(Template):是一套 Django 自己的頁面渲染模板語言,用若干內(nèi)置的tags和filters定義頁面的生成方式。

表單(Form):通過內(nèi)置的數(shù)據(jù)類型和控件生成 HTML 表單。

管理站(Admin):通過聲明需要管理的 Model,快速生成后臺數(shù)據(jù)管理網(wǎng)站。

*聲明:本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來源信息有誤或侵犯權(quán)益,請聯(lián)系我們刪除或授權(quán)事宜。

掃描二維碼推送至手機訪問。

版權(quán)聲明:本文由信途科技轉(zhuǎn)載于網(wǎng)絡(luò),如有侵權(quán)聯(lián)系站長刪除。

轉(zhuǎn)載請注明出處http://www.quickersubmitter.com/xintu/17235.html

相關(guān)文章

深圳做網(wǎng)站多少費用(南昌做網(wǎng)站費用)

定制化網(wǎng)站建設(shè)就是根據(jù)企業(yè)的自己的情況來進行定制網(wǎng)站建設(shè),企業(yè)要成為互聯(lián)網(wǎng)上的贏家,網(wǎng)頁設(shè)計至關(guān)重要,因為客戶對公司的第一印象都來自網(wǎng)頁。所以企業(yè)網(wǎng)站設(shè)計要從零開始,完全個性化網(wǎng)頁設(shè)計及網(wǎng)頁程式設(shè)計。...

自貢正規(guī)網(wǎng)絡(luò)推廣引流(龍網(wǎng)網(wǎng)絡(luò)推廣引流系統(tǒng))

輔助生殖突然火了!日前北京市醫(yī)保局宣布,將宮腔內(nèi)人工授精術(shù)、胚胎移植術(shù)等16項輔助生殖技術(shù)項目納入醫(yī)保甲類報銷范圍。北京也成為國內(nèi)首個將輔助生殖技術(shù)納入醫(yī)保范疇的城市。整體的價格其實可以看到基本是沒有...

平臺推廣引流的手段(平臺推廣應(yīng)用工作方案)

大家好,我是小魚論壇推廣、博客推廣、彈窗等推廣方式在今年已經(jīng)被提及的越來越少了,而且做的人也不多了,但是還有很多推廣引流的方法依然長久,比如軟文營銷、廣告投放等等,這些推廣方法存在了10幾年,直到現(xiàn)在...

定南品牌網(wǎng)絡(luò)營銷優(yōu)點的簡單介紹

定南鵝公鎮(zhèn)的網(wǎng)絡(luò)推廣讓更多的人知道你的公司歡迎大神指點,八方資源網(wǎng)云集了眾多的*供應(yīng)商,采購商,制造商這是 定南鵝公鎮(zhèn)的網(wǎng)絡(luò)推廣讓更多的人知道你的公司歡迎大神。公司網(wǎng)絡(luò)營銷包括企業(yè)網(wǎng)絡(luò)推廣和電商兩大因...

千牛我要推廣99元引流(千牛推廣怎么弄)

是兄弟就來砍一刀,相信每個人都經(jīng)歷過拼dd砍一刀的陰影,都對砍價模式并不陌生。今天給大家拆解一個做嬰兒輔食的商家,利用砍價裂變活動給店鋪日常引流,實現(xiàn)日均漲1000+會員的案例。一、做會員運營的意義為...

引流推廣平臺(引流推廣平臺有哪些)

如果認為,只有今日頭條引流推廣平臺,公眾號等媒體開放平臺是自媒體的話,看了這篇文章,這種狹義想法就要pass掉,因為從概念來講,自媒體是公民用以發(fā)布自己親眼所見、親耳所聞事件的載體。況且,(重點來了)...

現(xiàn)在,非常期待與您的又一次邂逅

我們努力讓每一次邂逅總能超越期待

  • 效果付費
    效果付費

    先出效果再付費

  • 極速交付
    極速交付

    響應(yīng)速度快,有效節(jié)省客戶時間

  • 1對1服務(wù)
    1對1服務(wù)

    專屬客服對接咨詢

  • 持續(xù)更新
    持續(xù)更新

    不斷升級維護,更好服務(wù)用戶