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

Django站點管理

開發 itl rom idt 概述 類型 17. bsp 列表

1.概述

一個網站分為前臺(普通用戶訪問)和管理後臺(由網站管理員訪問)兩部分。
管理後臺由網站的管理員負責查看、添加、修改、刪除數據,開發這些重復的功能是一件單調乏味、缺乏創造力的工作,為此,Django能夠根據定義的模型類自動地生成管理模塊 使用Django的管理模塊,需要按照如下步驟操作
管理界面本地化
創建管理員
註冊模型類
自定義管理頁面

2.配置admin

在settinngs.py文件中的INSTALLED_APPS中添加‘django.contrib.admin‘

技術分享圖片

3.創建管理員用戶

python manage.py createsuperuser

技術分享圖片

4.登錄Django站點管理

瀏覽器地址輸入 127.0.0.1:8000/admin

技術分享圖片

5.漢化

在settings.py文件中修改

LANGUAGE_CODE = ‘zh-Hans‘
TIME_ZONE = ‘Asia/Shanghai‘

技術分享圖片

6.修改admin.py文件

from django.contrib import admin
from .models import Grade,Student

admin.site.register(Grade)
admin.site.register(Student) 

技術分享圖片

7.添加數據

技術分享圖片

8.修改models.py

#班級
class Grade(models.Model):
    gname = models.CharField(max_length=20)
    gdate = models.DateField()
    gnum = models.IntegerField()
    isDelete = models.BooleanField(default=False)
    def __str__(self):
        return self.gname

技術分享圖片

9.列表頁顯示修改

  • list_display 顯示字段
  • list_filter 過濾字段
  • search_fields 搜索字段
  • list_per_page 列表分頁

技術分享圖片

10.中文標題

class Student(models.Model):
    sname = models.CharField(max_length=20,verbose_name="學生姓名")
    ......

  

11.添加修改頁

class studentAdmin(admin.ModelAdmin):
    # 修改列表頁
    list_display = [‘id‘, ‘sname‘, ‘sage‘, ‘sinfo‘, ‘sgrade_id‘,‘isDelete‘]
    list_filter = [‘sgrade_id‘]
    search_fields = [‘sname‘]
    list_per_page = 5
    # 修改添加修改頁
    # fields = [‘sname‘,‘sgrade‘, ‘sinfo‘, ‘sage‘, ‘isDelete‘]
    fieldsets = [
        ("學生信息", {"fields": [‘sname‘, ‘sage‘,‘sinfo‘]}),
        ("班級信息", {"fields": [‘sgrade‘]}),
        ("其它信息", {"fields": [‘isDelete‘]}),
    ]
# 註冊
admin.site.register(Student,studentAdmin)

  

技術分享圖片

12.外鍵關聯

# 關聯對象
class Grade_tudent(admin.TabularInline):
    model = Student
    extra = 1

class GradeAdmin(admin.ModelAdmin):
    # 關聯對象
    inlines = [Grade_tudent]

技術分享圖片

13.布爾值顯示修改

class studentAdmin(admin.ModelAdmin):
    # 修改布爾類型值顯示
    def gender(self):
        if self.sgender:
            return "男"
        else:
            return "女"
    # 修改列表頁
    list_display = [‘sname‘,‘sage‘,gender, ‘sinfo‘, ‘sgrade‘,‘isDelete‘]

  

14.操作選項的位置

# 動作執行的位置
actions_on_top = False
actions_on_bottom = True

 

技術分享圖片

15. django-admin後臺美化

1)pip安裝grappelli

pip install django-grappelli 

2)settings.py中添加

INSTALLED_APPS = (  
      ‘grappelli‘,     #必須在‘django.contrib.admin‘之前
      ‘django.contrib.admin‘,
)  

3)urls.py中添加映射關系

(r‘^grappelli/‘,include(‘grappelli.urls‘)), 

4)settings.py中添加

ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/" #把admin的靜態文件,由原來的admin目錄,改為映射到static目錄下的
grapplli.GRAPPELLI_ADMIN_TITLE=‘BBS後臺管理系統‘#更改grappellie的登入title

5)靜態文件根目錄

STATIC_ROOT=BASE_DIR+‘/static/‘  #把靜態文件放置於項目文件所在的static文件夾

6)收集靜態文件

 python manage.py collectstatic

  

效果預覽

技術分享圖片

Django站點管理