- Flask Web應用開發項目實戰:基于Python和統信UOS
- 木合塔爾·沙地克
- 2433字
- 2024-04-22 11:36:03
1.2 涉及的技術知識點
1.2.1 統信UOS
統信軟件基于Linux內核、采用同源異構技術打造操作系統統信UOS,它同時支持4種CPU(Central Processing Unit,中央處理器)架構(AMD64、ARM64、LoongArch、SW64)、六大國產CPU平臺(鯤鵬、龍芯、申威、海光、兆芯、飛騰)及Intel/AMD的主流CPU,提供高效簡潔的人機交互界面、美觀易用的桌面應用、安全穩定的系統服務,是真正可用和好用的自主操作系統。
統信UOS服務器版主要面向我國電子辦公、教育、金融、能源等領域,著重滿足企業級用戶在信息化基礎建設過程中,對服務端基礎設施的安裝部署、運行維護、應用支撐等需求。
1.2.2 Python
Python提供了高效的高級數據結構、簡單有效的面向對象編程。Python的語法、動態類型和解釋型語言的本質,使它成為多數平臺上寫腳本和快速開發應用的編程語言。
Python解釋器易于擴展,具有豐富的標準庫,提供了適用于各個主要系統的源碼或機器碼。
在2021年10月的TIOBE排行榜上,Python被評為最受歡迎的編程語言,20年來首次位列Java、C和JavaScript之上。自Python語言誕生之初(20世紀90年代初)至2022年,它已被逐漸應用于系統管理任務的處理和Web編程。
1.2.3 Flask
Flask是一個輕量級的可定制框架,使用Python語言編寫,較其他同類型框架更為靈活、輕便、安全且容易上手。它可以很好地結合MVC(Model-View-Controller,模型-視圖-控制器)模式,使得小型團隊在短時間內就可以實現功能豐富的中小型網站或Web服務。其強大的插件庫可以讓用戶實現個性化的網站定制,開發出功能強大的網站。
Flask是目前十分流行的Web框架,程序員可以使用Python語言快速實現一個網站或Web服務。Flask主要包括Werkzeug和Jinja2兩個核心函數庫,它們分別提供業務處理和安全方面的功能,為Web項目開發提供了豐富的基礎組件。
1.2.4 Bootstrap
Bootstrap是基于HTML、CSS、JavaScript 開發的簡潔、直觀、“強悍”的響應式前端開發框架,使得 Web 開發更加快捷。在Bootstrap中建立一個頁面,就可以在3個終端(PC端、平板計算機端、手機端)上完美展示。
1.2.5 jQuery
jQuery是一個快速、簡潔的JavaScript框架,它封裝JavaScript常用的功能代碼,提供一種簡便的JavaScript設計模式,優化HTML文檔操作、事件處理、動畫設計和AJAX交互。jQuery具有高效、靈活的CSS選擇器,并且可對CSS選擇器進行擴展,具有與CSS語法相似的選擇器,幾乎兼容所有主流瀏覽器。
jQuery有豐富多彩的插件,且簡單、易學,是開發網站等復雜度較低的Web應用的首選JavaScript框架。
1.2.6 CSS
CSS(Cascading Style Sheets,串聯樣式表)不僅可以靜態地修飾網頁,還可以配合各種腳本語言動態地對網頁各元素進行格式化,能夠對網頁中元素的位置進行像素級精確控制,支持幾乎所有的字體、字號、樣式,擁有對網頁對象和模型樣式進行編輯的能力。
1.2.7 HTML文件
一個網頁對應多個HTML(Hypertext Markup Language,超文本標記語言)文件,HTML文件以.htm或.html為擴展名(其中.htm是因為之前的文件系統只支持最多3位擴展名)。可以使用任何能夠生成TXT類型源文件的文本編輯器來編寫HTML文件,只用修改文件擴展名即可。標準的HTML文件都具有一個基本的整體結構,標簽一般都是成對出現的(部分標簽除外)。
1.2.8 Tornado
Tornado全稱為Tornado Web Server,是一個用Python語言寫成的Web服務器兼Web應用框架。作為Web服務器,Tornado有較為出色的抗負載能力,常被用作大型站點的接口服務框架。Tornado框架和服務器一起組成一個WSGI(Web Server Gateway Interface,Web服務器網關接口)的全棧替代品。單獨在WSGI容器中使用Tornado框架或者Tornado HTTP服務器有一定的局限性,為了最大化地發揮Tornado的性能,推薦同時使用Tornado框架和Tornado HTTP服務器。
1.2.9 Gunicorn
Gunicorn(Green Unicorn)是一個UNIX下的WSGI HTTP(Hypertext Transfer Protocol,超文本傳送協議)服務器,是一個移植自Ruby的Unicorn(一個基于Python的線程模型)項目的pre-fork(提前創建進程)模型。它既支持eventlet,也支持greenlet(greenlet是Python眾多協程實現技術中的一種,eventlet是基于greenlet實現的)。
在管理worker時,Gunicorn使用了pre-fork模型,即一個master進程管理多個worker進程,所有請求和響應均由worker處理。master進程是一個簡單的loop(可重復執行的代碼段),監聽worker不同進程的信號并且做出響應。比如接收TTIN信號增加worker數量、接收TTOU信號減少運行worker數量。如果worker無響應,發出CHLD(CHLD為child的縮寫)信號,則重啟失敗的worker,同步的worker一次處理一個請求。Gunicorn服務器與各種Web框架兼容性較好,執行簡單,資源消耗低,響應迅速。
1.2.10 Sublime Text
Sublime Text是一個文本編輯器(一款收費軟件,但可以無限期試用),同時也是一個先進的代碼編輯器。Sublime Text的主要功能包括拼寫檢查、書簽、完整的Python API(Application Program Interface,應用程序接口)、Goto功能、即時項目切換、多選擇、多窗口等。Sublime Text是一個跨平臺的編輯器,同時支持Windows、Linux、macOS等操作系統。
本書用Sublime Text作為Python代碼編輯器,因為它幾乎不需要進行任何配置,界面簡潔,操作方便,不需要創建項目直接打開文件夾即可開始編輯,最重要的是可無限期試用。
1.2.11 SQLite
SQLite是一款輕型的數據庫,它是針對嵌入式設備設計的,而且已經在很多嵌入式產品中得到使用。它占用的資源非常少,在嵌入式設備中,可能只需要幾百KB的內存就夠了。它支持Windows、Linux、UNIX等主流的操作系統,同時能夠與很多程序語言相結合,如Tcl、C#、PHP、Java等,還有ODBC(Open Database Connectivity,開放式數據庫互連)接口。與MySQL、PostgreSQL這兩款開源的數據庫管理系統相比,它的處理速度更快。
SQLite引擎不是與程序通信的獨立進程,而是連接到程序中成為程序的一個主要部分,所以主要是在編程語言內的直接API調用。這在減少消耗總量、縮短延遲時間和實現整體簡單性上有積極的作用。整個數據庫(定義、表、索引和數據本身)都在宿主機上存儲在一個單一的文件中。
1.2.12 MySQL
MySQL是很好的關系數據庫管理系統(Relational Database Management System,RDBMS)應用軟件之一。由于其體積小、速度快、總體成本低,而且開源,因此一般中小型網站和大型網站的開發都選擇MySQL作為網站數據庫。
與其他大型數據庫相比,如Oracle、DB2、SQL Server等,MySQL有它的不足之處,但是這絲毫沒有降低它的受歡迎程度。而且由于 MySQL是開源軟件,因此可以大大降低總體成本。
1.2.13 MariaDB
MariaDB數據庫管理系統是MySQL的一個分支。MariaDB完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的替代品。在存儲引擎方面,MariaDB使用XtraDB來代替MySQL的InnoDB。MariaDB由MySQL的創始人邁克爾·維德紐斯(Michael Widenius)主導開發,MariaDB這一名稱來自邁克爾女兒的名字“Maria”。
1.2.14 Navicat
Navicat是一套可創建多個連接的數據庫管理工具,用以方便管理MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB和MongoDB等不同類型的數據庫。Navicat的功能足以滿足專業開發人員的所有需求,并且對數據庫服務器初學者來說既簡單又易操作。