Python菜鳥之路:Django Admin後臺管理功能使用

前言

  用過Django框架的童鞋確定都知道,在建立完Django項目後,每一個app下,都會有一個urls.py文件,裏邊會有以下幾行:python

from django.contrib import admin

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

  上邊看到導入的admin模塊,就是本節所要說的主要內容數據庫

主要功能

  功能1:提供數據庫管理功能django

    基於admin模塊,能夠實現相似數據庫客戶端的功能,對數據進行增刪改查session

  功能2:二次開發app

    基於該模塊的數據管理功能,能夠二次定製一些實用的功能。框架

使用方法

步驟1:在settings.py中,INSTALLED_APPS中,加入django.contrib.admin優化

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',   #admin依賴
    'django.contrib.contenttypes', #admin依賴
    'django.contrib.sessions',  #admin依賴
     ......    
]    

步驟2:urls.py建立admin路由url

 

from django.contrib import admin

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

 

步驟3:在settings.py配置文件中,中間件註冊spa

MIDDLEWARE = [
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    ....
]

步驟4:建立admin管理用戶server

python manage.py createsuperuser

步驟5:在app 的models.py文件中建立表信息,即表類

from django.db import models


class Gender(models.Model):
    name = models.CharField(max_length=32)

class userinfo(models.Model):
    nid = models.AutoField(primary_key=True)
    name = models.CharField(max_length=30, verbose_name='用戶名',editable=False)
    email = models.EmailField(db_index=True)
    memo = models.TextField()
    img = models.ImageField(upload_to='upload')
    user_type = models.ForeignKey("UserType", null=True, blank=True)
    gender_choices = (
        (0, "男"),
        (1, "女"),
    )
    gender = models.IntegerField(choices=gender_choices,default=1)

class UserType(models.Model):
    name = models.CharField(max_length=32)

    def __str__(self):
        return self.name

步驟6:在admin.py中註冊表

from django.contrib import admin

# Register your models here.
from app01 import models
admin.site.register(models.userinfo)
admin.site.register(models.UserType)

步驟7:生成表結構

python  manage.py makemigrations && python manage.py migrate

注意:在數據庫表結構發生變更時,再次執行python  manage.py makemigrations就會報錯,這是由於此時表中可能已經有數據,貌然變更表結構會有影響,此時的解決方法有兩種,一種是,設置新增字段的default='xxx'某個值, 可是這種通用性不是很好。 另一種是,設置該字段null=True。即容許爲空便可

步驟8:運行項目,登錄管理界面

python manage.py runserver

訪問URL:http://IP:8000/admin

最終展現頁面

  顯示出來這個頁面,就表示admin已經能夠正常管理了。

顯示優化

優化1:顯示字段信息

  這時候去UserType裏邊添加幾條數據後,會發現這幾天數據都顯示User Type object,顯示很不友好。圖示以下

    

  處理辦法就是去models.py中,修改class UserType類,增長

    def __str__(self):
        return self.name

  增長以後,再次查看,就會顯示用戶以前增長的可視名稱了

    

優化2:優化表單信息爲中文顯示

  在userinfo表中,設置了verbose_name='用戶名',這個參數的做用就是在用戶添加信息的時候,顯示「用戶名」,而不是默認的name

相關文章
相關標籤/搜索