1. 程式人生 > >diango站點管理

diango站點管理

使用站點管理

Django中預設集成了後臺資料管理頁面,通過簡單的配置就可以實現模型後臺的Web控制檯,如果沒有整合,自己在settings中的INSTALLED_APPS新增'django.contrib.admin'應用就好了

設定為中文

settings中LANGUAGE_CODE = 'zh-hans'

設定時間,時區

TIME_ZONE='Asia/Shanghai'

在瀏覽器中輸入127.0.0.1:埠號/admin,可進入後臺資料管理頁面:

要進入站點管理首先需要建立一個管理員賬戶:使用指令python manager.py createsuperuser

,根據提示,建立系統管理員

登入之後可以看到以下介面:

在這裡插入圖片描述

自定義站點管理

在應用目錄下的admin.py檔案中,寫入程式碼:

from django.contrib import admin

# Register your models here.
from app01.models import Person


class PersonAdmin(admin.ModelAdmin):
    # 設定顯示的欄位 數組裡放的是模型屬性
    list_display = ['id', 'p_name', 'p_age']



admin.site.register(Person, PersonAdmin)      

注:Person為自己在model中建立的模型

在這裡插入圖片描述

APP01下的為自定義建立的站點管理

在這裡插入圖片描述

點選可以看到Person下儲存的所有資料

可以看到以上姓名欄為中文,年齡欄為英文:該樣式原因為models中定義Person時,為姓名欄添加了verbose_name屬性,以下為完整程式碼:

from django.db import models

# Create your models here.

class Person(models.Model):
    p_name = models.CharField(
        max_length=30,
        verbose_name='姓名'
    )
    p_age = models.IntegerField(
        default=0
    )

    def __str__(self):
        return self.p_name

可以在class Person的程式碼中新增程式碼:

class Meta:
        verbose_name = '人'

可以將Person名字重新命名為中文,效果如下:

在這裡插入圖片描述

  • 顯示規則

    • list_display 顯示欄位

    • list_filter 過濾欄位

    • search_fields 搜尋欄位

    • list_per_page 分頁,每頁顯示多少條資料

    • ordering 排序規則

    • 分組顯示 fieldsets = (

    (‘姓名’,{fields:(‘p_name’)}),

    (‘年齡’,{fields:(‘p_age’)}),

    )

  • 修改規則

    • fields 顯示的欄位
    • exclude 不顯示的欄位

以下為寫入多種規則的樣式:

from django.contrib import admin

# Register your models here.
from app01.models import Person


class PersonAdmin(admin.ModelAdmin):
    # 傳遞函式
    def setNewAge(self):
        if self.p_age > 45:
            return '中年人'
        else:
            return self.p_age

    # 設定顯示的欄位 數組裡放的是模型屬性
    list_display = ['id', 'p_name', 'p_age', setNewAge]  # 將函式寫入顯示的欄位中才會在站點中顯示
    # 設定過濾條件
    list_filter = ['p_age', 'p_name']
    # 設定搜尋欄位
    search_fields = ['p_name', 'p_age']
    # 設定分頁  後面填入每一頁的資料數量
    list_per_page = 10
    # 設定排序規則   欄位名前方加負號表示逆序,否則正序
    ordering = ['-p_age']



admin.site.register(Person, PersonAdmin)

站點樣式:

在這裡插入圖片描述