邱紅麗 張舒雅
(河南質(zhì)量工程職業(yè)學(xué)院,河南 平頂山 467000)
Python 是目前“最受歡迎的編碼語(yǔ)言”之一,它采用極簡(jiǎn)主義設(shè)計(jì)思想,語(yǔ)法簡(jiǎn)單優(yōu)雅,學(xué)習(xí)簡(jiǎn)單、上手快,不需要很復(fù)雜的代碼和邏輯,即可實(shí)現(xiàn)強(qiáng)大的功能!Python 有三大主流Web框架:Django、Flask、Tornado,這三個(gè)框架都有各自的特點(diǎn)。Django 是個(gè)比較大的框架,自帶的功能比較多,但是有時(shí)候過于繁瑣;Flask 是一個(gè)使用Python 編寫的輕量級(jí)Web 應(yīng)用框架,框架較小,自帶的功能比較少,但是它的第三方模塊比較多,但是比較依賴于第三方模塊;Tornado 是一個(gè)異步非阻塞的框架,非常的強(qiáng)大,而且速度相當(dāng)快,每秒可以處理數(shù)以千計(jì)的連接,但是代碼完全需要自己手寫。
Django 框架是Python 有三大主流Web 框架之一,幾乎囊括了Web 應(yīng)用的方方面面,并且還提供了許多網(wǎng)站后臺(tái)開發(fā)經(jīng)常用到的模塊。它通過減少重復(fù)的代碼,使你能夠?qū)W⒂赪eb應(yīng)用上有趣的關(guān)鍵性的東西。為了達(dá)到這個(gè)目標(biāo),Django 框架提供了通用Web 開發(fā)模式的高度抽象,為頻繁進(jìn)行的編程作業(yè)提供了快速解決方法,并為“如何解決問題”提供了清晰明了的約定。所以,使用Django 框架,可以使你能夠以最小的代價(jià)構(gòu)建和維護(hù)高質(zhì)量的Web 應(yīng)用。
Django 框架采用了MTV 的軟件設(shè)計(jì)模式,即模型(Model),視圖(View)和模板(Template),它借用了MVC 的設(shè)計(jì)模式。其中:
Model(模型):負(fù)責(zé)業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)的對(duì)象;
Template(模版):負(fù)責(zé)如何把頁(yè)面展示給用戶;
View(視圖):負(fù)責(zé)業(yè)務(wù)邏輯,并在適當(dāng)?shù)臅r(shí)候調(diào)用Model 和Template。
除此之外,Django 框架還有一個(gè)urls 分發(fā)器,它是將瀏覽器端頁(yè)面請(qǐng)求的URL 分發(fā)給不同的view 處理,view 再調(diào)用相應(yīng)的Model 和Template。
url 分發(fā)機(jī)制如圖1 所示。
圖1 url 分發(fā)機(jī)制
PyCharm 是 一 種 Python IDE (Integrated Development Environment,集成開發(fā)環(huán)境),帶有一整套可以幫助用戶在使用Python 語(yǔ)言開發(fā)時(shí)提高其效率的工具,比如調(diào)試、語(yǔ)法高亮、項(xiàng)目管理、代碼跳轉(zhuǎn)、智能提示、自動(dòng)完成、單元測(cè)試、版本控制。此外,該IDE 提供了一些高級(jí)功能,以用于支持Django 框架下的專業(yè)Web 開發(fā)。使用PyCharm 開發(fā)平臺(tái),開發(fā)基于Django 框架的Web 項(xiàng)目,對(duì)程序員來說是個(gè)不錯(cuò)的選擇。
3.2.1 使用Django 框架進(jìn)行Web 項(xiàng)目開發(fā),首先,要在PyCharm 平臺(tái)中安裝Django;其次,在PyCharm 平臺(tái)中創(chuàng)建項(xiàng)目helloworld,項(xiàng)目創(chuàng)建完之后,會(huì)在項(xiàng)目helloworld 下面創(chuàng)建一個(gè)和helloworld 名稱一樣的子文件夾。子文件夾helloworld 下有兩個(gè)重要的文件settings.py 和urls.py。
settings.py:這是一個(gè)配置文件,里面有關(guān)于語(yǔ)言、時(shí)區(qū)、安裝的APP(application)聲明等等信息,URL 分發(fā)時(shí),根URL 配置就在這個(gè)文件中;
urls.py: URL 配置就在這個(gè)文件里,它指明了在訪問一個(gè)頁(yè)面時(shí)要調(diào)用的視圖等的映射,確保在訪問時(shí)可以正確定位到你要實(shí)現(xiàn)的功能;
除此之外,還有一個(gè)manage.py 文件,它用于執(zhí)行項(xiàng)目的各種管理操作,比如創(chuàng)建應(yīng)用、執(zhí)行數(shù)據(jù)遷移、啟動(dòng)開發(fā)服務(wù)器等等。
3.2.2 在項(xiàng)目里創(chuàng)建一個(gè)應(yīng)用(APP: application)
同學(xué)們,下面的成語(yǔ)是不是很眼熟?它們都在前面的欄目中出現(xiàn)過哦。試一試,認(rèn)真看完雜志的你,一定能把這些成語(yǔ)補(bǔ)充完整。
Django 項(xiàng)目的框架搭建之后,我們要?jiǎng)?chuàng)建一個(gè)應(yīng)用,名稱為myapp(這個(gè)名字可以隨便?。?。應(yīng)用創(chuàng)建好之后,項(xiàng)目helloworld下面會(huì)出現(xiàn)一個(gè)與字文件夾helloworld 并列的myapp 的文件夾,該文件夾里面有一個(gè)migrations 文件夾和一些文件。
當(dāng)訪問路徑為http://127.0.0.1:8000/myapp 時(shí),自動(dòng)調(diào)用index 視圖函數(shù)。
3.2.5 運(yùn)行
開發(fā)程序的時(shí)候可以使用Django 框架自帶的開發(fā)服務(wù)器。首先,啟動(dòng)服務(wù)器;其次,在地址欄中輸入http://127.0.0.1:8000/myapp,瀏覽器上就出顯示:hello world!
如果想在地址欄中輸入http://127.0.0.1:8000/,就可以調(diào)用index 視圖函數(shù),那么需要修改url.py,把path('myapp/',views.index),修改為path('',views.index)。
通過上面的幾個(gè)步驟,把如何創(chuàng)建Django 項(xiàng)目做了簡(jiǎn)單的介紹。當(dāng)然,Web 項(xiàng)目還需要涉及到數(shù)據(jù)庫(kù),那么就需要在settings.py 文件中配置數(shù)據(jù)庫(kù)的信息,在model.py 文件中定義模型類。最后通過數(shù)據(jù)庫(kù)遷移命令makemigrations 和migrate,來創(chuàng)建數(shù)據(jù)庫(kù)的表和字段。
在Java 中,想要實(shí)現(xiàn)后臺(tái)管理,是非常的麻煩的。但是,Django 提供的Admin 管理后臺(tái),是一套用于管理用戶和數(shù)據(jù)的是Web 系統(tǒng),通過它可以很方便的實(shí)現(xiàn)數(shù)據(jù)的增刪改查功能,實(shí)現(xiàn)對(duì)用戶的管理。
在url.py 文件中,有一個(gè)默認(rèn)的配置:
urlpatterns = [
使用之前要先創(chuàng)建超級(jí)用戶,通過命令python manage.py createsuperuser 創(chuàng)建超級(jí)管理員,超級(jí)管理員可以管理其他用戶、數(shù)據(jù)、組等。當(dāng)訪問路徑為http://127.0.0.1:8000/admin 時(shí),會(huì)進(jìn)入到Admin 后臺(tái)管理站點(diǎn),登錄界面如圖2 所示。
進(jìn)入后臺(tái)管理后,默認(rèn)是沒有我們創(chuàng)建的應(yīng)用中定義的模型類,需要自己在應(yīng)用中的admin.py 文件中注冊(cè),才可以在后臺(tái)管理界面中看到,并進(jìn)行增刪改查操作。但是后臺(tái)默認(rèn)顯示的是該模型類對(duì)應(yīng)的對(duì)象名稱,如果需要對(duì)象的屬性顯示出來,就需要在admin.py 文件中自定義類,這個(gè)類要繼承admin.ModelAdmin 類,然后用list_display 列舉出需要顯示的屬性,比如:list_display = ['id', 'name', 'pwd', 'gender'],這樣后臺(tái)管理界面可以清晰的看到對(duì)象中的每個(gè)屬性。
Django 框架自帶大量常用工具、框架、完善的文檔以及強(qiáng)大的數(shù)據(jù)庫(kù)訪問組件和后臺(tái)管理系統(tǒng),非常適合快速開發(fā)企業(yè)級(jí)網(wǎng)站。自帶的數(shù)據(jù)庫(kù)ORM組件,使得開發(fā)者無(wú)須學(xué)習(xí)SQL 語(yǔ)言即可對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作;提供的后臺(tái)管理系統(tǒng),開發(fā)者只需要通過簡(jiǎn)單的幾行配置和代碼就可以實(shí)現(xiàn)一個(gè)完整的后臺(tái)數(shù)據(jù)管理控制平臺(tái)。