Django Web Development in Python
Django 是一個廣泛使用的免費、開源和高階 web 開發框架。它為開發人員提供了很多“開箱即用”的特性,因此開發速度很快。然而,由它構建的網站是安全的、可伸縮的,同時也是可維護的。
Goal
目標
本教程的目標是構建一個部落格應用程式,可以通過管理面板建立和更新部落格內容。部落格內容顯示在頁面上,如果需要可以刪除。整個應用程式提供 CRUD (建立、讀取、更新、刪除)功能。本教程不使用任何前端技術,如 Javascript,CSS 等,但重點是基本的,但必要的概念,需要在每一個 Django Web 開發。
Required Setup
必要的安裝
1:所有作業系統的使用者都可以使用它。所有與 Django 相關的命令和 Unix 命令都是通過它來完成的。下載 Git bash
2:Text-Editor: 文字編輯器:
可以使用任何文字編輯器,如 Sublime Text 或 Visual Studio Code,
3:Python 3: The latest version of Python can be downloaded in
注意: 如果您了解 Python 的基礎知識,並且了解迴圈、函式、類等,以及 bash 或命令列的一些知識,那麼您可以很容易地遵循本教程。
Virtual Environment
虛擬環境
虛擬環境充當 python 相關專案的依賴項。它作為一個自包含的容器或一個隔離的環境工作,其中安裝了所有與 python 相關的包以及與特定專案相關的必需版本。因為新版本的 Python,Django,或者軟體包,等等都會在虛擬環境的幫助下推出,所以你可以使用特定於你的專案的舊版本。總之,您可以啟動一個與2.0版本的 Django 相關的獨立專案,而與3.0版本的 Django 相關的另一個獨立專案可以在同一臺計算機上啟動。注意: 有許多建立虛擬環境的方法,但是隻有一種方法如下所示。
建立虛擬環境的步驟
你可以在桌面中使用“ mkdir”命令建立名為“ project-blog”的新目錄
使用“ cd”命令將目錄更改為“ project-blog”。
虛擬環境是使用“ python-m venv env”建立的,其中 env 是通過“ ls”命令顯示的虛擬環境。
啟用您的虛擬環境: 虛擬環境可以啟用使用’源’命令,其中’指令碼’資料夾需要啟用或啟用。如果您已經成功激活了虛擬環境,那麼“ env”將顯示在括號中。
安裝所需的包:
你可以使用
“ pip 安裝 django”
在特定的虛擬環境中安裝 Django
注意: Linux 和 Mac 使用者需要在命令中特別使用‘ python3’ ,因為版本2的 Python 已經預先安裝在他們的計算機中。此外,最好使用版本3,因為目前 Python 在2020年之後將不支援版本2。
Creating a Django Project
建立一個 Django 專案
第一步是使用
'django-admin startproject
Django-admin startproject
project_name'
在你的例子中,‘ project name’是‘ django blog’。此外,它將在我們新建立的專案中生成大量檔案,您可以在其中進一步研究
使用“ cd”命令將目錄更改為新建立的專案,並使用“ ls”命令檢視建立的檔案
您可以通過使用
'python manage.py runserver'.
這個專案可以在你最喜歡的瀏覽器(Google Chrome,Mozilla Firefox 等)上瀏覽。你可以進入瀏覽器,在 URL 中輸入‘ localhost: 8000’或‘127.0.0.1:8000’ ,如下所示
為了獲得與上面相同的頁面,bash 中的伺服器需要在後臺執行。此外,如果需要,你可以在 Windows/Linux 中點選“ Ctr + c” ,在 Mac 中點選“ Cmd + c” ,手動停止伺服器
(很多小夥伴可能不用谷歌 但是道理相同哦 請耐心觀看)
啟動新專案
在 Django 中建立一個新專案,通常需要兩個步驟,如下所示。
第一步是建立一個應用程式
'python manage.py startapp app_name'
在 Django 中,單個專案有許多應用程式,每個應用程式作為特定專案的單個和特定的功能
NSTALLED_APP 安裝 app
改變我們的模式
使用 SQLite 作為預設資料庫,它很輕,僅用於小型專案,這對於這個專案來說是很好的。它使用“物件關係對映器(ORM)” ,這使得處理資料庫變得非常容易。實際的資料庫程式碼不是編寫的,而資料庫表是通過‘ models.py’中的‘ class’關鍵字建立的。
在‘ blog/models.py’中,您需要建立一個名為‘ Post’的新模型。這是一個類,以後將成為一個數據庫表,當前繼承自‘模型’。模特。和標準的部落格一樣,某個“ Post”包含一個標題,這個標題將是一個名為 CharField 的欄位。它是一個基於文字的列,接受強制引數為“ max _ length” ,在您的例子中這個引數恰好是50。此外,還有另一個名為“ content”的欄位,即 TextField,它包含標準部落格中的“ Post”的詳細文字。定義了雙下劃線(‘ str’)方法,它覆蓋欄位‘ title’ ,並返回實際的‘ title’而不是某些物件的名稱。
遷移
Python manage.py makemigrations 是建立後讀取‘ models.py’的第一個步驟。它建立了一個名為遷移的新資料夾,其中有一個名為“0001 _ initial.py”的檔案,這個檔案可以跨資料庫移植。
遷移到資料庫
這是‘ python manage.py migrate’讀取新建立的資料夾‘ migrations’並建立資料庫的第二步,當模型發生變化時,它會進化資料庫。
向管理員註冊
讓我們轉移到‘ blog/admin.py’ ,並使用‘ from’匯入名為‘ Post’的模型。模型進口郵件’。要向管理員註冊模型,命令是“ admin.site.register (Post)”。
建立 SuperUser 並在管理面板中檢視
更改檢視和 url
轉到“ blog/views.py” ,並進行如下所示的更改。新增函式‘ blog _ list’ ,接收請求。進行查詢,獲取使用‘ Post.objects.all ()’建立的所有物件,並將其儲存到 post 中。有一個新建立的字典作為“上下文” ,其中物件可以作為關鍵字傳遞,並通過模板“ blog-list.html”獲得,該模板在渲染的幫助下返回響應。在“ django _ blog/blog”中建立一個名為“ urls.py”的新檔案,並新增以下更改。有相對匯入的意見’部落格列表’也是一個’ urlpatterns’ ,這是一個網站上的特定網頁的路徑列表。當前,包含空字串和檢視的名稱。讓我們轉到“ django _ blog/urls.py”和 import include,並對“ urlpatterns”進行修改。然後通過 include 新增路徑到你的應用 url。此外,當用戶路由到“ posts/”時,它會被定向到我們的“ blog.url”
製作和更改模板
讓我們建立一個模板資料夾,它通常包含“ HTML” ,幷包含它們自己的模板語言“ Jinja2”。資料夾需要命名為‘ templates/blog/blog _ list.html’ ,這是慣例。你可以在下面看到與“ hypertextmarkuplanguage (HTML)”相關的語法,其中“ h1”表示大標題,“ ul”表示列表元素 li。此外,與‘ Jinja 2’相關的‘ for’迴圈語法用於迭代一個名為‘ blog _ list’的物件作為鍵從‘ blog/views.py’傳遞,每個元素名為‘ list’。在網頁上檢視名為“ First Post”的標題。讓我們從管理面板新增另一個資訊相同的上面,並命名您的第二個職位標題為“第二個職位”在新增資訊和重新載入主頁後,資訊將被更新。
每個職位的詳細資料
你將建立每一個單獨的頁面,包含有關帖子標題和內容的資訊。‘ url’將是“ localhost: 8000/posts/‘ id’” ,其中 id 表示 Django 本身給出的每個‘ Post’的唯一編號或主鍵。讓我們在‘ blog/view.py’中建立一個名為‘ blog _ detail’的函式,它接受 id 作為引數。另外,還有一個查詢,用於獲取特定的 id 並儲存到“每個帖子”。同樣,如上所述,需要的資訊作為上下文傳遞到‘ blog _ detail. html’。‘ blog/urls.py’中的 url 在 path 包含‘ < id > ’時更改,該路徑接受整數形式的唯一 id。假設使用者只看到“ posts/”的所有帖子,但是當他們看到“ posts/1”的時候,他們只看到關於第一個建立帖子的資訊。讓我們建立一個新檔案“ blog/blog _ detail.html” ,並進行以下更改。因為 blog _ detail 是作為上下文傳遞的,所以‘ title’和‘ content’可以使用點符號來訪問。點選瀏覽器的網址,輸入相同的內容就可以得到單獨的帖子。因為建立的第一個資訊的 id 是“1” ,其中第二個資訊是“2” ,以此類推新建立的資訊。
讓我們定義 blog _ delete,它接受請求和 id。此外,在‘ Post.objects.get (id = id)’獲取具有唯一 id 的物件並將其儲存到每個 _ post 的地方進行查詢。在那之後,每一個帖子。呼叫 delete ()來刪除“ Post”。最後,HttpResponseRedirect 從“ django.http”模組匯入,用於將頁面重定向到“/posts/”。在‘ urls.py’ import‘ blog _ delete’中,路徑設定為‘ < id >/delete’ ,其中 id 在結尾處的 delete 將刪除特定的物件或資訊。讓我們通過在‘ urls.py’中鍵入以下內容來刪除我們的帖子。最後,當主頁上只有一個帖子的地方呼叫 posts/1/delete/時,頁面被重定向到“/posts”。
總結
恭喜你完成了教程!您已經學習了 Django Web 開發的基礎知識,並了解了 CRUD 功能。另外,有關特定主題的更多詳細資訊,請訪問 Django 文件。