创建一个 Django 项目
一、 創(chuàng)建項目
其中:
?
確認(rèn)項目是否創(chuàng)建成功:
在 manage.py 目錄上運行 python manage.py runserver
server 啟動后,在瀏覽器訪問 http://127.0.0.1:8000,能正常打開網(wǎng)頁表示項目建立成功。
注意:
二、 創(chuàng)建應(yīng)用
應(yīng)用和項目有什么區(qū)別?應(yīng)用是一個專門做某件事情的網(wǎng)絡(luò)應(yīng)用程序——比如博客系統(tǒng)等。項目則是一個網(wǎng)站使用的配置和應(yīng)用的集合。項目可以包含很多個應(yīng)用,應(yīng)用也可以被很多個項目使用。我們以一個簡單的圖書-英雄的應(yīng)用為例,簡單走一遍 Django 開發(fā)的流程。
首先在 manage.py 同級目錄下創(chuàng)建圖書應(yīng)用,命令如下:
python manage.py startapp booktest
創(chuàng)建之后便可在 manage.py 同級目錄下看到一個名為 booktest 的目錄,其中包含一些預(yù)先設(shè)置的 py 文件。
booktest 應(yīng)用的設(shè)計:
三、 編寫模型——Model
模型(Model)負(fù)責(zé)與數(shù)據(jù)庫相關(guān)的操作。
默認(rèn)數(shù)據(jù)庫是 sqlite,可以通過修改 settings.py 來改變默認(rèn)數(shù)據(jù)庫。
step1:編寫模型類
定義模型類的目的包括:
1. 根據(jù)模型類的定義生成 sql 語句,并創(chuàng)建數(shù)據(jù)庫表
2. 根據(jù)模型類生成對象,將對對象的各種操作映射到數(shù)據(jù)庫中表格內(nèi)容的變化(增刪改查)
django 2.0中:
hbook = models.ForeignKey(BookInfo, on_delete=models.CASCADE)
step2:生成數(shù)據(jù)庫表
step3: 測試數(shù)據(jù)
step4: 關(guān)聯(lián)對象的操作
四、 創(chuàng)建后臺管理站點——Admin
一般一個站點分為“內(nèi)容發(fā)布”和“公共訪問”兩部分。內(nèi)容發(fā)布的部分負(fù)責(zé)添加、修改、刪除內(nèi)容,開發(fā)這些重復(fù)的功能是一件單調(diào)乏味、缺乏創(chuàng)造力的工
作。為此,Django 會根據(jù)定義的模型類完全自動的生成管理模塊
step1:創(chuàng)建一個管理員用戶
運行命令: python manage.py createsuperuser
根據(jù)提示輸入用戶名,郵箱以及密碼啟動服務(wù)器,訪問 http://127.0.0.1:8000/admin,輸入用戶名、密碼即可進(jìn)入管理站點,,默認(rèn)可以對 groups、
users 進(jìn)行管理。
step2: 管理界面本地化
編輯 settings.py,設(shè)置語言和時區(qū)
step3: 向 admin 注冊 booktest 的模型,以便對其進(jìn)行管理
step4: 自定義管理界面
列表頁的定制:
添加、修改頁的定制:
五、 編寫視圖——View
視圖對 web 請求進(jìn)行回應(yīng)。視圖的本質(zhì)是一個函數(shù),定義在 views.py 中。它接收request 對象作為第一個參數(shù),request 中包含了請求的信息。
step1: 編寫視圖函數(shù)
step2: 配置 URL 路由
用戶的請求到達(dá)服務(wù)器后,Django 使用正則表達(dá)式匹配請求的 URL,先去項目下的urls.py 中進(jìn)行匹配,找到二級路由繼續(xù)進(jìn)行匹配,一旦匹配成功,則調(diào)用相應(yīng)的視圖。
注意:只匹配路徑部分,即除去域名、參數(shù)等
1. 在項目(mysite)的 urls.py 中配置 bookset 的 urls 的路由
2. 在 bookset 的 urls.py 中調(diào)用視圖
啟動 server,訪問 http://127.0.0.1:8000 便可看到 index 函數(shù)中的輸出信息。
注意: Django2.0 開始路由的配置發(fā)生了變化,開始使用 path()函數(shù),但它依然向老版本兼容。而這個兼容的辦法,就是用 re_path()方法代替
path()方法。re_path()方法在骨子里,根本就是以前的 url()方法。
后面的章節(jié)中,你只需要使用 from django.urls import re_path 正確導(dǎo)入 re_path()方法,并用它替換 url()方法就可以了。
六、 編寫模板——Template
模板是 html 頁面,可以根據(jù)視圖中傳遞的數(shù)據(jù)填充值。
step1: 創(chuàng)建 templates 目錄
在項目目錄下創(chuàng)建 templates 目錄,并在 templates 目錄中繼續(xù)創(chuàng)建 booktest 目錄。templates 下可以添加多個模板,以應(yīng)用為單位進(jìn)行組織。
step2: 修改 settings.py 文件,設(shè)置 TEMPLATES 的 DIRS 值
step3: 定義 index.html
在 templates\booktest 下創(chuàng)建 index.html
step4:編輯 views.py,在方法中調(diào)用模板
?
這時,啟動 server,訪問 127.0.0.1:8000 便可看到 index.html 顯示的內(nèi)容
step5: 在模板中顯示數(shù)據(jù)
視圖(V)從模型(M)中獲得數(shù)據(jù),通過上下文傳遞給模板(T),模板進(jìn)行處理。
在 views.py 的 index 方法中改寫:
在 index.html 中接收傳進(jìn)的 context,并做處理。
在模板中訪問視圖傳遞的數(shù)據(jù)的兩種方式:
1.{{輸出值}} , 該輸出值可以是變量,也可以是對象.屬性
2.{%執(zhí)行代碼段%}
運行 server,便可看到 book 的名字信息。
七、 總結(jié)
流程:
? 1.設(shè)計
? 模型類(數(shù)據(jù)表,字段,類型)
? 視圖中的方法
? 視圖中方法對應(yīng)的 url,url 路由
? 2.編寫模型,使用簡單 API 與數(shù)據(jù)庫交互
? 3.使用 Django 的后臺管理功能維護(hù)數(shù)據(jù)
? 4.編寫視圖,接收用戶請求,通過模型獲得數(shù)據(jù),并將數(shù)據(jù)傳遞給模板
? 5.調(diào)用模板,接收并處理視圖傳遞的數(shù)據(jù),最終呈現(xiàn)給用戶
轉(zhuǎn)載于:https://www.cnblogs.com/sunBinary/p/10424311.html
總結(jié)
以上是生活随笔為你收集整理的创建一个 Django 项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决manjaro更新后pacman:
- 下一篇: 寒假与春节终归,新学期和新任务又至