教程:Visual Studio 中的 Django Web 框架入門

教程:Visual Studio 中的 Django Web 框架入門

 

Django 是高級 Python 框架,用於快速、安全及可擴展的 Web 開發。 本教程將在 Visual Studio 提供的項目模板上下文中探討 Django 框架,以簡化基於 Django 的 Web 應用的建立過程。python

在本教程中,你將瞭解:git

  • 使用「空白 Django Web 項目」模板在 Git 存儲庫中建立一個基本 Django 項目(步驟 1)
  • 使用模板建立一個單頁 Django 應用,並呈現該頁面(步驟 2)
  • 爲靜態文件提供服務、添加頁面和使用模板繼承(步驟 3)
  • 使用 Django Web 項目模板建立包含多個頁面和響應式設計的應用(步驟 4)
  • 對用戶進行身份驗證(步驟 5)
  • 使用投票 Django Web 項目模板建立使用模型、數據庫遷移和管理界面自定義項的應用(步驟 6)

系統必備

  • Windows 上的 Visual Studio 2017 有如下選項:
    • 「Python 開發」工做負載(安裝程序中的「工做負載」選項卡)。 有關說明,請參閱在 Visual Studio 中安裝 Python 支持
    • 「代碼工具」下「單個組件」選項卡上的「適用於 Windows 的 Git」和「適用於 Visual Studio 的 GitHub 擴展」。

Django 項目模板也包含在針對 Visual Studio 的 Python 工具的全部早期版本中,儘管細節可能不一樣於本教程中討論的內容(特別是不一樣於早期版本的 Django框架)。github

Visual Studio for Mac 當前不支持 Python 開發。 在 Mac 和 Linux 上,使用 Visual Studio Code 中的 Python 擴展數據庫

「Visual Studio 項目」和「Django 項目」

在 Django 術語中,「Django 項目」由幾個網站級別配置文件和一個或多個「應用」組成,能夠將它們部署到 Web 主機,從而建立一個完整的 Web 應用程序。 一個 Django 項目能夠包含多個應用,而同一個應用能夠存在於多個 Django 項目中。django

Visual Studio 項目就其自己而言,能夠包含 Django 項目和多個應用。 爲簡單起見,只要是本教程僅涉及一個「項目」,都指的是 Visual Studio 項目。 若是要表示 Web 應用程序的「Django 項目」部分,則會專門使用「Django 項目」。瀏覽器

本教程將建立一個 Visual Studio 解決方案,其中包含三個獨立的 Django 項目,每一個項目都包含一個 Django 應用。 經過將項目保留在同一解決方案中,能夠輕鬆地在不一樣文件之間來回切換以進行比較。安全

步驟 1-1:建立 Visual Studio 項目和解決方案

從命令行使用 Django 時,一般會經過運行 django-admin startproject <project_name> 命令來啓動一個項目。 在 Visual Studio 中,使用「空白 Django Web 項目」模板在 Visual Studio 項目和解決方案中提供相同結構。服務器

  1. 在 Visual Studio 中,選擇「文件」 > 「新建」 > 「項目」,搜索「Django」,而後選擇「空白 Django Web 項目」模板。(還能夠在左側列表的「Python」 > 「Web」中找到模板。)併發

    Visual Studio 中「空白 Django Web 項目」的新建項目對話框

  2. 在對話框底部的字段中,輸入如下信息(如上圖所示),而後選擇「肯定」:app

    • 名稱:將 Visual Studio 項目的名稱設置爲「BasicProject」。 此名稱還用於 Django 項目。
    • 位置:指定要在其中建立 Visual Studio 解決方案和項目的位置。
    • 解決方案:將此控件設置保留爲默認「建立新解決方案」選項。
    • 解決方案名稱:設置爲「LearningDjango」,適用於本教程中做爲多個項目的容器的解決方案。
    • 建立解決方案的目錄:保留設置(默認值)。
    • 新建 Git 存儲庫:選擇此選項(默認狀況下會清除該選項),以便在 Visual Studio 建立解決方案時建立本地 Git 存儲庫。 若是未看到此選項,請運行 Visual Studio 2017 安裝程序並在「代碼工具」下的「單個組件」選項卡上添加「適用於 Windows 的 Git」和「適用於 Visual Studio 的 GitHub 擴展」。
  3. 稍後 Visual Studio 會顯示一個對話框,提示「此項目須要外部包」(以下所示)。 顯示此對話框是由於該模板包含引用最新 Django 1.x 包的 requirements.txt 文件。 (選擇「顯示所需包」查看確切的依賴項。)

    指示項目須要外部包的提示

  4. 選擇選項「我將自行安裝」。 當即建立虛擬環境,確保它會從源代碼管理中排除。 (始終可從 requirements.txt 建立該環境。)

步驟 1-2:檢查 Git 控件併發布到遠程存儲庫

因爲選擇了「新建項目」對話框中的「建立新的 Git 存儲庫」,在建立過程完成後,項目就已經提交到本地源代碼管理。 在此步驟中,你將熟悉 Visual Studio 的 Git 控件和在其中使用源代碼管理的「團隊資源管理器」窗口。

  1. 在 Visual Studio 主窗口下角處檢查 Git 控件。 這些控件從左到右依次顯示未推送的提交、未提交的更改、存儲庫的名稱以及當前分支:

    Visual Studio 窗口中的 Git 控件

     備註

    若是未選擇「新建項目」對話框中的」建立新 Git 存儲庫「,Git 控件將僅顯示用於建立本地存儲庫的」添加到源代碼管理「命令。

    未建立存儲庫時 Visual Studio 中顯示的「添加到源代碼管理」

  2. 選擇「更改」按鈕,Visual Studio 會在「更改」頁上打開「團隊資源管理器」窗口。 因爲新建立的項目已經自動提交給源代碼管理,所以,看不到任何掛起的更改。

    「更改」頁上的「團隊資源管理器」窗口

  3. 在 Visual Studio 狀態欄中,選擇「未推送的提交」按鈕(標有「2」的向上箭頭)以打開團隊資源管理器中的「同步」頁。 因爲你只有一個本地存儲庫,頁面將提供簡單的選項將存儲庫發佈到不一樣的遠程存儲庫。

    顯示面向源代碼管理的可用 Git 存儲庫選項的「團隊資源管理器」窗口

    能夠爲本身的項目選擇任何所需的服務。 本教程演示瞭如何使用 GitHub,其中本教程已完成的示例代碼保存在 Microsoft/python-sample-vs-learning-django 存儲庫中。

  4. 選擇任一「發佈」控件時,「團隊資源管理器」都將提示你輸入詳細信息。 例如,在發佈本教程的示例時,必須首先建立存儲庫自己,在這種狀況下,「推送到遠程存儲庫」選項將與存儲庫的 URL 結合使用。

    用於推送到現有遠程存儲庫的團隊資源管理器窗口

    若是沒有現有存儲庫,可經過「發佈到 GitHub」和「推送到 Azure DevOps」選項直接從 Visual Studio 建立一個存儲庫。

  5. 按照本教程執行操做時,請養成按期在 Visual Studio 中使用控件提交和推送更改的習慣。 本教程會在適當時機提醒你。

 提示

要在團隊資源管理器中快速導航,請選擇標頭(上圖中顯示爲「更改」或「推送」)來查看可用頁面的彈出菜單。

問:從項目一開始就使用源代碼管理有什麼好處?

答:首先,從一開始就使用源代碼管理,特別是若是同時還使用遠程存儲庫,就能夠提供項目的常規異地備份。與在本地文件系統上維護項目不一樣,源代碼管理還提供了完整的更改歷史記錄,用戶能夠輕鬆地將單個文件或整個項目還原到之前的狀態。 此更改歷史記錄有助於肯定迴歸的緣由(測試失敗)。 此外,若是多我的員執行一個項目,則源代碼管理必不可少,由於它管理重寫並提供衝突解決方案。 最後,源代碼管理從根本上來講是一種自動化形式,它爲自動化構建、測試和發佈管理提供充分準備。 這其實是將 DevOps 用於項目的第一步,並且因爲入門門檻很是低,所以沒有理由不從一開始就使用源代碼管理。

有關源控制做爲自動化的進一步討論,請參閱真相的來源:DevOps 中存儲庫的做用,這是 MSDN 雜誌中爲移動應用編寫的一篇文章,也適用於 Web 應用。

問:我可否阻止 Visual Studio 自動提交新項目?

答:能夠。 若要禁用自動提交,請轉到「團隊資源管理器」中的「設置」頁,選擇「Git」 > 「全局設置」,清除標記爲「合併後默認提交更改」的選項,而後選擇「更新」。

步驟 1-3:建立虛擬環境並從源代碼管理中將其排除

你已爲項目配置源代碼管理,如今可爲項目建立包含必需 Django 包的虛擬環境。 而後,可使用「團隊資源管理器」從源代碼管理中排除環境文件夾。

  1. 在「解決方案資源管理器」中,右鍵單擊「Python 環境」節點並選擇「添加虛擬環境」。

    解決方案資源管理器中的「添加虛擬環境」命令

  2. 隨即出現「添加虛擬環境」對話框,並顯示一條消息,指示「已找到 requirements.txt 文件。」 此消息表示 Visual Studio 使用該文件來配置虛擬環境。

    包含 requirements.txt 消息的「添加虛擬環境」對話框

  3. 選擇「建立」以接受默認設置。 (若是你願意,能夠更改虛擬環境名稱,這隻會更改其子文件夾的名稱,但 env 是標準約定。)

  4. 若是收到提示,贊成管理員權限,而後在 Visual Studio 下載和安裝包時耐心等待幾分鐘,對於 Django 來講,這意味着在大約一樣數目的子文件夾中展開幾千個文件! 能夠在 Visual Studio「輸出」窗口中查看進度。在等待時,仔細考慮下面的「問題」部分。

  5. 在 Visual Studio Git 控件(位於狀態欄上)上,選擇更改指示器(顯示「99*」),這將打開團隊資源管理器中的「更改」頁。

    建立虛擬環境帶來了數千項更改,但不須要在源代碼管理中包含其中任何一項,由於你(或克隆項目的任何人員)始終可從 requirements.txt 從新建立環境。

    要排除虛擬環境,請右鍵單擊 env 文件夾,而後選擇「忽略這些本地項」。

    忽略源代碼管理更改中的虛擬環境

  6. 排除虛擬環境後,剩下的惟一更改是針對項目文件和 .gitignore。 .gitignore 文件包含虛擬環境文件夾的附加條目。 能夠雙擊文件查看差別。

  7. 輸入提交消息,而後選擇「所有提交」按鈕,根據須要將提交推送到遠程存儲庫。

問:爲何須要建立虛擬環境?

答:虛擬環境是隔離應用確切依賴項的好辦法。 此類隔離避免了全局 Python 環境中的衝突,有助於進行測試和協做。 隨着時間的推移,在開發應用時,老是會引入許多有用的 Python 包。 經過將包保存在特定於項目的虛擬環境中,能夠輕鬆更新項目中介紹該環境的 requirements.txt 文件,該文件包含在源代碼管理中。 若是項目被複制到任何其餘計算機(包括生成服務器、部署服務器和其餘開發計算機),僅使用 requirements.txt 便可輕鬆從新建立環境(這就是爲何環境不須要包含在源代碼管理中)。 有關詳細信息,請參閱使用虛擬環境

問:如何刪除已經提交給源代碼管理的虛擬環境?

答:首先,編輯 .gitignore 文件以排除文件夾:在末尾找到帶註釋 # Python Tools for Visual Studio (PTVS) 的部分,併爲虛擬環境文件夾添加一個新行,如 /BasicProject/env。 (因爲 Visual Studio 不會顯示「解決方案資源管理器」中的文件,請使用「文件」 > 「打開」 > 「文件」菜單命令直接打開它。 也能夠從團隊資源管理器打開文件:在「設置」頁上,選擇「存儲庫設置」,轉到「忽略和屬性文件」部分,而後選擇 .gitignore 旁的「編輯」連接。)

接下來,打開命令窗口,導航到包含虛擬環境文件夾(如 env)的文件夾(如 BasicProject),而後運行 git rm -r env。 而後從命令行 (git commit -m 'Remove venv') 提交這些更改,或從「團隊資源管理器」的「更改」頁進行提交。

步驟 1-4:檢查樣本代碼

項目建立完成後,檢查樣本 Django 項目代碼(仍與 CLI 命令 django-admin startproject <project_name> 生成的代碼相同)。

  1. 在項目根目錄中爲 manage.py,即 Visual Studio 自動設置爲項目啓動文件的 Django 命令行管理實用工具。可使用 python manage.py <command> [options] 在命令行上運行實用工具。 對於常見的 Django 任務,Visual Studio 提供了方便的菜單命令。 右鍵單擊「解決方案資源管理器」中的項目,而後選擇「Python」查看列表。 在本教程中,你將遇到其中的部分命令。

    Python 項目上下文菜單上的 Django 命令

  2. 在你的項目中是一個與項目名稱相同的文件夾。 它包含基本 Django 項目文件:

    • __init.py:告知 Python 此文件夾是 Python 包的空文件。

    • wsgi.py:WSGI 兼容的 Web 服務器執行項目的入口點。 一般會按原樣保留該文件,由於它爲生產 Web 服務器提供掛鉤。

    • settings.py:包含在開發 Web 應用的過程當中修改的 Django 項目的設置。

    • urls.py:包含一樣在開發過程當中修改的 Django 項目的內容目錄。

      解決方案資源管理器中的 Django 項目文件

  3. 如前文所述,Visual Studio 模板還將 requirements.txt 文件添加到指定 Django 包依賴項的項目中。 該文件旨在邀請你在第一次建立項目時建立虛擬環境。

問:在我安裝其餘包後,Visual Studio 可否從虛擬環境生成 requirements.txt 文件?

答:能夠。 展開「Python 環境」節點,右鍵單擊虛擬環境,並選擇「生成 requirements.txt」命令。 在修改環境,並將對 requirements.txt 所作的更改連同依賴於該環境的任何其餘代碼更改提交給源代碼管理時,建議按期使用此命令。 若是在生成服務器上設置持續集成,應該在修改環境時生成文件並提交更改。

步驟 1-5:運行空 Django 項目

  1. 在 Visual Studio 中,選擇「調試」 > 「啓動調試」(F5) 或使用工具欄上的「Web 服務器」按鈕(所看到的瀏覽器可能會有所不一樣):

    Visual Studio 中的運行 Web 服務器工具欄按鈕

  2. 運行服務器意味着運行命令 manage.py runserver <port>,以啓動 Django 內置開發服務器。 若是 Visual Studio 顯示「啓動調試器失敗」並顯示無啓動文件的相關消息,右鍵單擊解決方案資源管理器中的 manage.py 並選擇「設爲啓動文件」。

  3. 在啓動服務器時,會看到一個打開的控制檯窗口,其中也顯示服務器日誌。 Visual Studio 將自動打開瀏覽器並轉到 http://localhost:<port>。 Django 項目沒有任何應用,可是,Django 只顯示了一個默認頁面,確認目前正常工做:

    Django 項目默認視圖

  4. 完成後,經過關閉控制檯窗口,或使用 Visual Studio 中的「調試」 > 「中止調試」命令來中止服務器。

問:Django 既是 Web 服務器也是框架嗎?

答:很差說。 Django 確實有一個用於開發目的的內置 Web 服務器。 當你在本地運行 Web 應用時(例如在 Visual Studio 中調試時),就會使用此 Web 服務器。 然而,在部署到 Web 主機時,Django 會改成使用主機的 Web 服務器。 Django 項目中的 wsgi.py 模塊負責掛接到生產服務器。

問:在項目 Python 子菜單中使用「調試」菜單命令和服務器命令有何區別?

答:除了「調試」菜單命令和工具欄按鈕以外,還可使用項目上下文菜單上的「Python」 > 「運行服務器」或「Python」 > 「運行調試服務器」命令來啓動服務器。 這兩個命令都會打開一個控制檯窗口,能夠在其中看到運行服務器的本地 URL (localhost:port)。 可是,必須使用該 URL 手動打開瀏覽器,而且運行調試服務器不會自動啓動 Visual Studio 調試器。 若是須要,稍後可使用「調試」 > 「附加到進程」命令,將調試器附加到正在運行的進程。

後續步驟

此時,基本 Django 項目不包含任何應用。 在下一步建立一個應用。 由於一般使用的是 Django 應用而不是 Django 項目,所以,暫不須要了解關於樣本文件的更多信息。

深刻了解

相關文章
相關標籤/搜索