項目準備
使用VSCODE做IDE。
檢查Python版本。
sudo apt install
sudo apt update
python3 --version
創建項目路徑,創建虛擬環境,創建項目
路徑 \mysite 進入路徑,運行VSCODE
運行 "code ." 創建虛擬環境。
選擇 >python: create enviorment, 選擇 virtual environment in current workspace.
選擇python解釋器。
結果如下:檢查Django是否安裝。
虛擬環境下,安裝django:
建立項目
django-admin startproject mysite
上面命令建立的文件和目錄:
這些目錄和文件的用處是:
- 最外層的?
mysite/
?根目錄只是你項目的容器, 根目錄名稱對 Django 沒有影響,你可以將它重命名為任何你喜歡的名稱。 這個目錄改為dir_arthur。 manage.py
: 一個讓你用各種方式管理 Django 項目的命令行工具。你可以閱讀?django-admin 和 manage.py?獲取所有?manage.py
?的細節。- 里面一層的?
mysite/
?目錄包含你的項目,它是一個純 Python 包。它的名字就是當你引用它內部任何東西時需要用到的 Python 包名。 (比如?mysite.urls
). mysite/__init__.py
:一個空文件,告訴 Python 這個目錄應該被認為是一個 Python 包。如果你是 Python 初學者,閱讀官方文檔中的?更多關于包的知識。mysite/settings.py
:Django 項目的配置文件。如果你想知道這個文件是如何工作的,請查看?Django 配置?了解細節。mysite/urls.py
:Django 項目的 URL 聲明,就像你網站的“目錄”。閱讀?URL調度器?文檔來獲取更多關于 URL 的內容。mysite/asgi.py
:作為你的項目的運行在 ASGI 兼容的 Web 服務器上的入口。閱讀?如何使用 ASGI 來部署?了解更多細節。(Asynchronouus Server Gateway Interface)mysite/wsgi.py
:作為你的項目的運行在 WSGI 兼容的Web服務器上的入口。閱讀?如何使用 WSGI 進行部署?了解更多細節。(Web Server Gateway Interface)
運行程序
python manage.py runserver. 系統提示數據庫沒有更新。執行 python manage.py migrate.
>?會自動重新加載的服務器?runserver
用于開發的服務器在需要的情況下會對每一次的訪問請求重新載入一遍 Python 代碼。所以你不需要為了讓修改的代碼生效而頻繁的重新啟動服務器。然而,一些動作,比如添加新文件,將不會觸發自動重新加載,這時你得自己手動重啟服務器。
創建項目
Django會自動創建相關的目錄,和架構。這樣我們就可以專心進行程序邏輯的設定了。
應用可以存放在任何?Python 路徑?中定義的路徑。在這個教程中,我們將在你的?manage.py
?同級目錄下創建投票應用。這樣它就可以作為頂級模塊導入,而不是?mysite
?的子模塊。
請確定你現在處于?manage.py
?所在的目錄下,然后運行這行命令來創建一個應用:
python manage.py startspp polls
Django自動創建polls目錄,并建立相關文件。
創建第一個視圖
1,修改polls下的view.py文件。 定義index方法。(定義視圖內容)
、
2, 創建polls下的urls.py,修改。(定義路由:將index方法和網頁地址進行連接)
3. 修改項目的urlrs.py(在項目里增加項目路由)
include()的作用:
函數?include()?允許引用其它 URLconfs。每當 Django 遇到?include()?時,它會截斷與此項匹配的URL 的部分,并將剩余的字符串發送到 URLconf 以供進一步處理。
我們設計?include()?的理念是使其可以即插即用。當包括其它 URL 模式時你應該總是使用?include()
?,?admin.site.urls
?是唯一例外。
4,path()詳解
函數?path()?具有四個參數,兩個必須參數:route
?和?view
,兩個可選參數:kwargs
?和?name
。現在,是時候來研究這些參數的含義了。
path()?參數:?route
route
?是一個匹配 URL 的準則(類似正則表達式)。當 Django 響應一個請求時,它會從?urlpatterns
?的第一項開始,按順序依次匹配列表中的項,直到找到匹配的項。
這些準則不會匹配 GET 和 POST 參數或域名。
例如,URLconf 在處理請求??https://www.example.com/myapp/
? 時,它會嘗試匹配?myapp/
?。
處理請求?https://www.example.com/myapp/?page=3
?時,也只會嘗試匹配?myapp/
。
path()?參數:?view
當 Django 找到了一個匹配的準則,就會調用這個特定的視圖函數,并傳入一個?HttpRequest?對象作為第一個參數,被“捕獲”的參數以關鍵字參數的形式傳入。稍后,我們會給出一個例子。
path()?參數:?kwargs
任意個關鍵字參數可以作為一個字典傳遞給目標視圖函數。本教程中不會使用這一特性。
path()?參數:?name
為你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。這個有用的特性允許你只改一個文件就能全局地修改某個 URL 模式。