Django2萌新入門筆記
這一篇教程,我們一起來了解Django自帶的後台。
Django自帶的後台功能已經比較完善,我們要了解的主要是如何使用它。
一、登錄
當我們啟動開發伺服器,就可以通過「http://127.0.0.1:埠號/admin」進行訪問了。
此時,會顯示登錄界面。
我猜你不知道用戶名和密碼,對吧?
嘿嘿,因為還沒有創建管理員和密碼。
接下來我們進行創建。
二、創建管理員
運行「manage.py」任務窗口,輸入命令:createsuperuser(回車)
此時,就會要求輸入用戶名和兩遍相同的密碼,至於郵箱地址,不想輸入的話,可以回車跳過。
如果設置的密碼想修改的話,可以輸入命令:changepassword 用戶名(回車)
就可以進行密碼的修改了。
當我們完成超級用戶(管理員)的創建,再次回到登錄界面,就可以進行登錄了。
打開之後,覺得很迷茫對吧?
不如,我們先把頁面改成中文的看一看。
三、修改後台語言
打開文件「settings.py」,拉到末尾,我們會看到一項設置。
LANGUAGE_CODE = "en-us"
Django支持很多種語言,默認語言是美國英語。
我們可以打開Django庫的路徑:項目文件夾venvLibsite-packagesdjangocontribadminlocale
這個路徑下,每一個文件夾的名稱代表了一種語言。
如果需要改成中文的話,我們把「LANGUAGE_CODE」的值改成「zh-Hans」,也就是中文漢字簡體,「s」表示簡體。
提示:繁體中文是「zh-Hant」,也就是中文漢字繁體,「t」表示台灣。
完成這項設置的修改之後,我們就能夠看到中文界面了。
圖中的「認證和授權」中,能夠對用戶和組進行管理。
用戶:包括用戶的創建、刪除、信息修改、許可權分配等。
組:創建不同的組別,給予相應的許可權,就能夠將用戶劃分到不同的組中,擁有相應的許可權,適合大量用戶的許可權管理。
四、添加數據
一般來說,資料庫中的全部或部分數據是需要在後台進行管理的。
但是,當前後台中,並沒有這些數據。
以我們之前已經創建好的模型「Goods」舉例,如何把通過這個模型創建的數據表中的數據呈現在後台呢?
操作非常簡單!
打開文件「admin.py」,在裡面我們導入模型類「Goods」,並加入一行代碼。
示例代碼:
這時,我們刷新後台頁面看一看。
此時,在頁面中我們看到了Web應用的名稱和模型中類的名稱,不過類的名稱後面多了個s,表示這裡面可能包含多個數據對象。
不過,現在顯示的站點名稱和表名稱都是英文,我們也可以給改成中文。
五、修改站點名稱、表名稱以及數據對象名稱為中文
首先,打開文件「apps.py」,當前只有一行定義「name」變數的代碼,我們在下方再添加一行代碼。
示例代碼:
verbose_name="我的商店"
這句代碼就能夠讓站點名稱顯示為指定的名稱。
然後,再打開模型文件「models.py」,在「Goods」類中,創建一個「Meta」類,並寫入一行代碼。
示例代碼:
class Goods(models.Model): ...省略已有代碼... class Meta: verbose_name_plural = "商品管理"
再次刷新頁面,就可以看到我們要的結果了。
接下來,我們點擊「商品管理」這個表名稱看一看。
在打開的頁面中,還有英文的「goods」或「GOODS」。
這些也需要改過來的話,我們在剛才的「meta」類中,再加入一行代碼。
示例代碼:
verbose_name = "商品"
頁面刷新後,我們能夠看到除了下方列表,中的「Goods object」,其餘的「Goods」都變成了「商品」。
那麼,列表中的「Goods object」怎麼處理呢?
列表就是之前所說的多個數據對象的列表。
這些「Goods object」都是數據行標題,以Goods object(商品名稱)的形式呈現。
這樣顯示數據行標題不是很友好,我們應該比較期望這裡是一條商品信息的數據內容。
解決這個問題,我們可以在「Goods」類中,再添加一段代碼。
示例代碼:
def __str__(self): return self.goods_name
這一段代碼的意思讓數據行標題顯示為商品名稱。
但是,只有商品名稱還不夠,如果能夠把其他的商品信息也顯示出來就更好了。
六、顯示更多數據欄位
如果想顯示更多的數據欄位,我們需要打開文件「admin.py」,創建一個新的類。
示例代碼:
class GoodsAdmin(admin.ModelAdmin): list_display = ("goods_name","goods_number","goods_price","goods_sales")
變數「list_display 」就是用來定義數據列表中顯示哪些的欄位。
然後,我們再將之前的語句:
修改為:
也就是將新增的類進行註冊。
刷新頁面,我們能夠看到更多的數據欄位了。
但是,新的問題又來了,列表中列名都是英文。
七、修改數據表的列名為中文。
這個很簡單,我們把文件「models.py」中「Goods」類的每個變數賦值進行修改,在欄位類型的參數中,第一個參數位置添加中文名稱。
示例代碼:
goods_name = models.CharField("商品名稱", max_length=30, primary_key=True)goods_number = models.IntegerField("數量")goods_price = models.FloatField("價格")goods_sales = models.IntegerField("銷量", default=0)
經過這樣的修改,就能看到數據列表中所有的列名都變成了中文名稱。
八、數據對象列表中添加非數據欄位內容
假如,我們想在上方的數據表中,再添加一列內容,是銷量的金額可不可以呢?
當然可以!
我們在Goods類中添加新的代碼。
示例代碼:
def sales_volume(self): return self.goods_sales * self.goods_pricesales_volume.short_description = "銷售額"goods_amount = property(sales_volume)
先通過一個方法「sales_volume」計算銷售額,再將這個方法轉為類的屬性。
這個屬性的名稱可以通過「sales_volume.short_description」進行定義。
然後,我們在文件「admin.py」中將「list_display」修改為:
list_display = ("goods_name","goods_number","goods_price","goods_sales","goods_amount")
完成上面的操作之後,我們刷新頁面,就能夠在列表中看到新增的「銷售額」這一列了。
提示:之前的商品銷量都是「0」,可以修改之後查看銷售額的變化。
以上就是關於Django後台的使用介紹。
TAG:OPython |