軟件開(kāi)發(fā)類(lèi)Web框架Django入門(mén)指南
譯文【51CTO.com快譯】Django是目前流行的軟件開(kāi)發(fā)類(lèi)Web框架之一。而作為一個(gè)Python框架,Django可被用于開(kāi)發(fā)服務(wù)器端的Web應(yīng)用。由于能夠支持前端開(kāi)發(fā),Django通常被作為后端,與React等前端框架協(xié)同使用。其主要競(jìng)爭(zhēng)對(duì)手是Express等后端框架。與其他框架類(lèi)似,Django能夠通過(guò)提供包、模塊和庫(kù),來(lái)簡(jiǎn)化Web的開(kāi)發(fā)。其免費(fèi)開(kāi)源的框架具有快速、安全和可擴(kuò)展性等特點(diǎn)。下面,我將向您介紹各種著手使用Django所需的基礎(chǔ)知識(shí)。
Django能做什么?
總的說(shuō)來(lái),Django能夠允許開(kāi)發(fā)人員創(chuàng)建出不同規(guī)模的網(wǎng)站和Web應(yīng)用。2005年,由于需要在工作環(huán)境中發(fā)布動(dòng)態(tài)新聞,兩名開(kāi)發(fā)人員開(kāi)發(fā)和構(gòu)建出了這個(gè)高效且可擴(kuò)展的Web框架。經(jīng)過(guò)近20年的發(fā)展,許多世界頂級(jí)公司(包括Instagram、Dropbox、Udemy、Spotify、National Geographic、以及Pinterest等)都已將Django運(yùn)用到了自己的開(kāi)發(fā)項(xiàng)目中。
創(chuàng)建一個(gè)新的Django項(xiàng)目
Django提供了三種安裝可選項(xiàng),您可以在其官網(wǎng)上查找到相關(guān)介紹。而在成功安裝了Django后,您需要通過(guò)在終端中輸入如下命令,來(lái)生成一個(gè)新的Django項(xiàng)目:
- django-admin startproject mysite
也就是說(shuō),該命令會(huì)在當(dāng)前的目錄中,創(chuàng)建一個(gè)新的Django項(xiàng)目。當(dāng)然,您也可以使用其他名稱(chēng)去代替mysite,這里只是一個(gè)示例。
新生成的Django項(xiàng)目將具有如下文件結(jié)構(gòu):
- mysite/
- mysite/
- _init_.py
- asgi.py
- settings.py
- urls.py
- wsgi.py
- db.sqlite3
- manage.py
主項(xiàng)目文件夾內(nèi)包含了一個(gè)同名的內(nèi)部文件夾 (mysite)、一個(gè)SQLite文件和一個(gè)Python文件。在此,Django會(huì)生成一個(gè)空的SQLite文件,以用作其默認(rèn)的數(shù)據(jù)庫(kù)。根據(jù)實(shí)際情況,您也可以讓它使用不同的SQL或NoSQL數(shù)據(jù)庫(kù)。
名為manage.py的Python文件是Django的一個(gè)命令行實(shí)用程序,可方便用戶(hù)執(zhí)行各項(xiàng)管理任務(wù)。為了執(zhí)行Django項(xiàng)目,您需要先導(dǎo)航至項(xiàng)目所在的目錄,然后在終端里輸入如下命令:
- python manage.py runserver
通過(guò)執(zhí)行上述命令,您的終端將產(chǎn)生如下輸出(或類(lèi)似的輸出):
- Performing system checks...
- System check identified no issues (0 silenced).
- You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
- Run 'python manage.py migrate' to apply them.
- November 06, 2021 - 11:20:27
- Djangoversion 3.2.9, using settings 'mysite.settings'
- Starting development server at http://127.0.0.1:8000/
- Quit the server with CTRL-BREAK.
您暫可忽略上述“未應(yīng)用遷移(unapplied migration)”的警告。一旦您設(shè)置好了數(shù)據(jù)庫(kù),該警告就會(huì)自動(dòng)消失。在此,您需要注意的是以“啟動(dòng)開(kāi)發(fā)服務(wù)器(Starting development server)”開(kāi)頭的一行。它為您提供了服務(wù)器的URL(在本例中為http://127.0.0.1:8000/)。
為了確認(rèn)Django項(xiàng)目是否正常運(yùn)行,您可以在瀏覽器中輸入并打開(kāi)該URL。如果一切順利的話,您將會(huì)看到如下內(nèi)容:
探究Django的Python包
Python包位于Django項(xiàng)目的內(nèi)部文件夾(上例為mysite目錄)中,其中包含了settings.py、asgi.py、_init_.py、以及urls.py等文件。
在項(xiàng)目的首次執(zhí)行時(shí),您的終端會(huì)根據(jù)設(shè)置文件的不同,輸出類(lèi)似:“Django的版本為3.2.9,使用的是'mysite.settings'的設(shè)置(Django version 3.2.9, using settings 'mysite.settings')”。這意味著,settings.py文件包含了Django項(xiàng)目的所有核心配置。
在Django項(xiàng)目中創(chuàng)建新的應(yīng)用
作為基礎(chǔ)框架,Django項(xiàng)目包含了用于創(chuàng)建完整網(wǎng)站或應(yīng)用的所有配置和代碼。您可以通過(guò)在Django項(xiàng)目中創(chuàng)建一個(gè)應(yīng)用,來(lái)開(kāi)啟程序的開(kāi)發(fā)之旅。
由于Django應(yīng)用往往被專(zhuān)門(mén)用于網(wǎng)站特定部分(或功能)的小型組件開(kāi)發(fā),因此如果您想使用Django開(kāi)發(fā)大型電商網(wǎng)站的話,您需要在同一個(gè)項(xiàng)目中擁有多個(gè)不同的應(yīng)用。例如,您可以創(chuàng)建一個(gè)應(yīng)用來(lái)管理客戶(hù),另一個(gè)應(yīng)用去管理待售商品,第三個(gè)應(yīng)用去管理銷(xiāo)售。
可見(jiàn),Django在單個(gè)項(xiàng)目中創(chuàng)建多個(gè)應(yīng)用的能力,對(duì)于產(chǎn)品的可擴(kuò)展性是至關(guān)重要的。這也使得它成為了企業(yè)級(jí)開(kāi)發(fā)的理想選擇。當(dāng)然,許多Django項(xiàng)目只會(huì)包含一個(gè)小規(guī)模的應(yīng)用程序。
若想在Django中創(chuàng)建新的應(yīng)用,您需要另開(kāi)一個(gè)新的終端,讓第一個(gè)終端從“python manage.py runserver”命令開(kāi)始,繼續(xù)運(yùn)行您的Django服務(wù)器;而在第二個(gè)終端中,請(qǐng)導(dǎo)航至項(xiàng)目目錄,并輸入如下命令:
- python manage.py startapp sellers
其中“sellers”是您要?jiǎng)?chuàng)建的應(yīng)用名稱(chēng)。通過(guò)執(zhí)行上述命令,您的Django項(xiàng)目中將會(huì)創(chuàng)建一個(gè)新的目錄。至此,整個(gè)文件系統(tǒng)的結(jié)構(gòu)如下表所示:
- mysite/
- mysite/
- _pycache_
- _init_.py
- asgi.py
- settings.py
- urls.py
- wsgi.py
- sellers/
- migration
- _init_.py
- admin.py
- apps.py
- models.py
- test.py
- views.py
- db.sqlite3
- manage.py
可見(jiàn),Django項(xiàng)目有了一個(gè)新的應(yīng)用程序。目前,唯一剩下的問(wèn)題是,網(wǎng)站既不知道該應(yīng)用的存在,又不知道如何去訪問(wèn)它。因此,我們需要通過(guò)如下方法將兩者聯(lián)系起來(lái)。
將Django應(yīng)用連接到Django項(xiàng)目上
urls.py文件可以將Django項(xiàng)目連接到,由開(kāi)發(fā)人員創(chuàng)建的不同應(yīng)用中。新的Django項(xiàng)目會(huì)在Python包中生成如下urls.py文件:
- from django.contrib import admin
- from django.urls import path
- urlpatterns = [
- path('admin/', admin.site.urls),
- ]
上面的文件包含了一個(gè)URL:admin/。為了讓sellers應(yīng)用連接上電商站點(diǎn),您需要在該文件中包含sellers應(yīng)用的URL。為此,您需要事先開(kāi)發(fā)好sellers應(yīng)用,并通過(guò)在sellers views.py文件中創(chuàng)建一個(gè)簡(jiǎn)單的視圖,來(lái)實(shí)現(xiàn)。
sellers view.py文件
- from django.shortcuts import render
- from django.http import HttpResponse
- def index(request):
- return HttpResponse("Hello sellers")
上面的文件中包含了一個(gè)簡(jiǎn)單的函數(shù),可用于呈現(xiàn)“Hello sellers”。因此,若要將sellers應(yīng)用連接到電商網(wǎng)站,您可以在sellers應(yīng)用中創(chuàng)建一個(gè)新的urls.py文件。
sellers urls.py 文件
- from django.urls import path
- from . import views
- urlpatterns = [
- path('', views.index, name='index'),
- ]
由上述文件創(chuàng)建的URL,可用于導(dǎo)入與使用views.py文件,進(jìn)而允許開(kāi)發(fā)人員從Django網(wǎng)站處訪問(wèn)views.py文件。
為網(wǎng)站更新的urls.py文件
- from django.contrib import admin
- from django.urls import include, path
- urlpatterns = [
- path('sellers/', include('sellers.urls')),
- path('admin/', admin.site.urls),
- ]
如您所見(jiàn),該urls.py文件有所不同。它通過(guò)導(dǎo)入include()函數(shù),來(lái)訪問(wèn)sellers urls.py文件。至此,您可以通過(guò)在瀏覽器中輸入并訪問(wèn)如下URL,來(lái)查看自己的sellers應(yīng)用程序了。
- http://127.0.0.1:8000/sellers/
其對(duì)應(yīng)的輸出界面為:
小結(jié)
總的說(shuō)來(lái),上面的各個(gè)演示步驟向您展示了:
- 如何創(chuàng)建一個(gè)Django項(xiàng)目
- 如何創(chuàng)建一個(gè)Django應(yīng)用
- 如何將項(xiàng)目連接到不同的應(yīng)用上
相信您已經(jīng)對(duì)Django及其用途有一個(gè)清晰的了解。當(dāng)然,這還只是開(kāi)始。如果您想全面了解Django和Python編程語(yǔ)言的相關(guān)知識(shí),請(qǐng)通過(guò)社區(qū)學(xué)習(xí)相關(guān)知識(shí),以及動(dòng)手編寫(xiě),來(lái)積累實(shí)戰(zhàn)經(jīng)驗(yàn)。
原文標(biāo)題:A Beginner’s Guide to Getting Started With Django,作者:KADEISHA KEAN
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】