1. 程式人生 > >django-17.admin後臺管理

django-17.admin後臺管理

tps led entire .cn attr leave ini 優化 migration

前言

通常一個網站開發,需要有個後臺管理功能,比如用後臺管理發布文章,添加用戶之類的操作。django的admin後臺管理主要可以實現以下功能

  • 基於admin模塊,可以實現類似數據庫客戶端的功能,對數據進行增刪改查
  • 於該模塊的數據管理功能,可以二次定制一些實用的功能。

settings.py配置

在INSTALLED_APPS中,默認已經添加相關模塊, 可以不用管

  • django.contrib.admin 管理站點
  • django.contrib.auth 認證系統
  • django.contrib.contenttypes 用於內容類型的框架
  • django.contrib.sessions 會話框架
  • django.contrib.messages 消息框架
  • django.contrib.staticfiles 管理靜態文件框架
# Application definition

INSTALLED_APPS = [
    ‘django.contrib.admin‘,          # 管理站點
    ‘django.contrib.auth‘,           # 認證系統
    ‘django.contrib.contenttypes‘,   # 用於內容類型的框架
    ‘django.contrib.sessions‘,       # 會話框架
    ‘django.contrib.messages‘,       # 消息框架
    ‘django.contrib.staticfiles‘,    # 管理靜態文件框架
    ‘hello‘,             # 應用app
]

urls.py創建

urls.py創建admin後臺的訪問路徑

from django.contrib import admin
from django.conf.urls import url


urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    ....  
]

創建admin管理用戶

django默認是沒管理員用戶的,需要執行指令,手動創建一個admin賬號

python manage.py createsuperuser

如下創建的管理員用戶名admin, 配置郵箱 [email protected],密碼設置123456

D:\web_djo\helloworld>python manage.py createsuperuser
Username (leave blank to use ‘admin‘): admin
Email address: 283340479@qq.com
Password:
Password (again):
This password is too short. It must contain at least 8 characters.
This password is too common.
This password is entirely numeric.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

models.py文件創建表

在app 的models.py文件中創建表信息,即表類,相關操作參考前面的一篇https://www.cnblogs.com/yoyoketang/p/10331049.html

# models.py

from django.db import models

# Create your models here.
 
# 我們新建了一個Person類,繼承自models.Model,
class Person(models.Model):
    name = models.CharField(max_length=30)
    age = models.IntegerField()

# 新增一張用戶表,表名為user 字段user_name, psw ,mail 都是字符串類型
class User(models.Model):
    user_name = models.CharField(max_length=30,
                                 primary_key=True)   # 設置為主鍵
    psw = models.CharField(max_length=30)
    mail = models.CharField(max_length=30)

創建表之後需執行

python manage.py makemigrations
python manage.py migrate

訪問admin後臺

在瀏覽器上訪問後臺http://localhost:8000/admin/,用戶名和密碼就是剛才新建的admin 123456

技術分享圖片

訪問後查看到的頁面

技術分享圖片

剛才新建的User和Person並沒有顯示在這裏,需要在admin.py中註冊表

admin.py註冊表

如果想讓新建的表,顯示到後臺管理裏面,需要在admin.py中添加註冊信息,如下在admin.py中註冊2個表信息

# admin.py
from django.contrib import admin
from hello import models

# Register your models here.
admin.site.register(models.User)
admin.site.register(models.Person)

接著刷新下頁面,就能看的剛才註冊的2個表信息了

技術分享圖片

顯示優化

打開一張表查看詳細信息,顯示的是User object這種內容,如果想顯示具體的標名稱,可以用__str__方法,相關語法參考https://www.cnblogs.com/yoyoketang/p/10342017.html

技術分享圖片

於是可以優化models.py裏面的代碼,加上一個def __str__(self):

class Person(models.Model):
    ‘‘‘用戶信息‘‘‘
    name = models.CharField(max_length=30)
    age = models.IntegerField()

    def __str__(self):
        return self.__doc__ + ":name>" + self.name

class User(models.Model):
    ‘‘‘註冊表‘‘‘
    user_name = models.CharField(max_length=30,
                                 primary_key=True)
    psw = models.CharField(max_length=30)
    mail = models.CharField(max_length=30)

    def __str__(self):
        return self.__doc__ + ":user_name->" + self.user_name

刷新amdin後臺頁面後顯示

技術分享圖片

選個記錄點進去就可以對相應的數據增刪改查了

技術分享圖片

django-17.admin後臺管理