軟件開發(fā)類Web框架Django入門指南
譯文【51CTO.com快譯】Django是目前流行的軟件開發(fā)類Web框架之一。而作為一個(gè)Python框架,Django可被用于開發(fā)服務(wù)器端的Web應(yīng)用。由于能夠支持前端開發(fā),Django通常被作為后端,與React等前端框架協(xié)同使用。其主要競(jìng)爭(zhēng)對(duì)手是Express等后端框架。與其他框架類似,Django能夠通過提供包、模塊和庫(kù),來簡(jiǎn)化Web的開發(fā)。其免費(fèi)開源的框架具有快速、安全和可擴(kuò)展性等特點(diǎn)。下面,我將向您介紹各種著手使用Django所需的基礎(chǔ)知識(shí)。
Django能做什么?
總的說來,Django能夠允許開發(fā)人員創(chuàng)建出不同規(guī)模的網(wǎng)站和Web應(yīng)用。2005年,由于需要在工作環(huán)境中發(fā)布動(dòng)態(tài)新聞,兩名開發(fā)人員開發(fā)和構(gòu)建出了這個(gè)高效且可擴(kuò)展的Web框架。經(jīng)過近20年的發(fā)展,許多世界頂級(jí)公司(包括Instagram、Dropbox、Udemy、Spotify、National Geographic、以及Pinterest等)都已將Django運(yùn)用到了自己的開發(fā)項(xiàng)目中。
創(chuàng)建一個(gè)新的Django項(xiàng)目
Django提供了三種安裝可選項(xiàng),您可以在其官網(wǎng)上查找到相關(guān)介紹。而在成功安裝了Django后,您需要通過在終端中輸入如下命令,來生成一個(gè)新的Django項(xiàng)目:
- django-admin startproject mysite
 
也就是說,該命令會(huì)在當(dāng)前的目錄中,創(chuàng)建一個(gè)新的Django項(xiàng)目。當(dā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í)用程序,可方便用戶執(zhí)行各項(xiàng)管理任務(wù)。為了執(zhí)行Django項(xiàng)目,您需要先導(dǎo)航至項(xiàng)目所在的目錄,然后在終端里輸入如下命令:
- python manage.py runserver
 
通過執(zhí)行上述命令,您的終端將產(chǎn)生如下輸出(或類似的輸出):
- 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)開發(fā)服務(wù)器(Starting development server)”開頭的一行。它為您提供了服務(wù)器的URL(在本例中為http://127.0.0.1:8000/)。
為了確認(rèn)Django項(xiàng)目是否正常運(yùn)行,您可以在瀏覽器中輸入并打開該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è)置文件的不同,輸出類似:“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)用的所有配置和代碼。您可以通過在Django項(xiàng)目中創(chuàng)建一個(gè)應(yīng)用,來開啟程序的開發(fā)之旅。
由于Django應(yīng)用往往被專門用于網(wǎng)站特定部分(或功能)的小型組件開發(fā),因此如果您想使用Django開發(fā)大型電商網(wǎng)站的話,您需要在同一個(gè)項(xiàng)目中擁有多個(gè)不同的應(yīng)用。例如,您可以創(chuàng)建一個(gè)應(yīng)用來管理客戶,另一個(gè)應(yīng)用去管理待售商品,第三個(gè)應(yīng)用去管理銷售。
可見,Django在單個(gè)項(xiàng)目中創(chuàng)建多個(gè)應(yīng)用的能力,對(duì)于產(chǎn)品的可擴(kuò)展性是至關(guān)重要的。這也使得它成為了企業(yè)級(jí)開發(fā)的理想選擇。當(dāng)然,許多Django項(xiàng)目只會(huì)包含一個(gè)小規(guī)模的應(yīng)用程序。
若想在Django中創(chuàng)建新的應(yīng)用,您需要另開一個(gè)新的終端,讓第一個(gè)終端從“python manage.py runserver”命令開始,繼續(xù)運(yùn)行您的Django服務(wù)器;而在第二個(gè)終端中,請(qǐng)導(dǎo)航至項(xiàng)目目錄,并輸入如下命令:
- python manage.py startapp sellers
 
其中“sellers”是您要?jiǎng)?chuàng)建的應(yīng)用名稱。通過執(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
 
可見,Django項(xiàng)目有了一個(gè)新的應(yīng)用程序。目前,唯一剩下的問題是,網(wǎng)站既不知道該應(yīng)用的存在,又不知道如何去訪問它。因此,我們需要通過如下方法將兩者聯(lián)系起來。
將Django應(yīng)用連接到Django項(xiàng)目上
urls.py文件可以將Django項(xiàng)目連接到,由開發(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。為此,您需要事先開發(fā)好sellers應(yīng)用,并通過在sellers views.py文件中創(chuàng)建一個(gè)簡(jiǎn)單的視圖,來實(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)而允許開發(fā)人員從Django網(wǎng)站處訪問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),
 - ]
 
如您所見,該urls.py文件有所不同。它通過導(dǎo)入include()函數(shù),來訪問sellers urls.py文件。至此,您可以通過在瀏覽器中輸入并訪問如下URL,來查看自己的sellers應(yīng)用程序了。
- http://127.0.0.1:8000/sellers/
 
其對(duì)應(yīng)的輸出界面為:
小結(jié)
總的說來,上面的各個(gè)演示步驟向您展示了:
- 如何創(chuàng)建一個(gè)Django項(xiàng)目
 - 如何創(chuàng)建一個(gè)Django應(yīng)用
 - 如何將項(xiàng)目連接到不同的應(yīng)用上
 
相信您已經(jīng)對(duì)Django及其用途有一個(gè)清晰的了解。當(dāng)然,這還只是開始。如果您想全面了解Django和Python編程語言的相關(guān)知識(shí),請(qǐng)通過社區(qū)學(xué)習(xí)相關(guān)知識(shí),以及動(dòng)手編寫,來積累實(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】


















 
 
 









 
 
 
 