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