django-17.admin後臺管理
前言
通常一個網站開發,需要有個後臺管理功能,比如用後臺管理發布文章,添加用戶之類的操作。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後臺管理