1,models编写

#encoding=utf-8
from django.db import models

# Create your models here.
class BookInfo(models.Model): #创建书本信息类,继承models.Model
booktitle=models.CharField(max_length=20)
bookdata=models.DateField()
def __unicode__(self): #设置后台数据显示信息
return self.booktitle
class HeroInfo(models.Model): #创建英雄信息类
heroname=models.CharField(max_length=10)
herosex=models.CharField(max_length=1)
herocontent=models.CharField(max_length=50)
herobook=models.ForeignKey('BookInfo',on_delete=models.CASCADE,) #引用外键,即BookInfo对象
def __unicode__(self): #设置后台数据显示信息
return self.heroname


2,settings配置

app注册:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'web'
]


数据库配置:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'web',
'USER': 'root',
'PASSWORD': 'Lifei@123',
'HOST': 'localhost',
'PORT': '3306',

}
}


3,__init__文件配置(django版本高于1.8的不支持MySQLdb,选择使用pymsql,所以需要在init文件中作如下配置)

import pymysql
pymysql.install_as_MySQLdb()


4,在migrations中生成数据迁移文件,同步表结构(创建表)

Django的admin定制_mysql 当表结构发生变化时需要进行再次生成数据迁移文件和同步表结构的操作

5,创建admin的superuser

在manage.py统计目录下,执行:python manage.py createsuperuser  即可

6,admin定制(简单版)

from django.contrib import admin
from web import models #导入app的models
# Register your models here.

class bookinfo(admin.ModelAdmin): #自定义页面显示(创建数据后的数据显示格式)
list_display = ('booktitle','bookdata')
class heroinfo(admin.ModelAdmin):
list_display = ('heroname','herosex','herocontent','herobook')

admin.site.register(models.BookInfo,bookinfo) #注册表 后台管理
admin.site.register(models.HeroInfo,heroinfo)


ps:遇到数据库版本小于1.3.3报错(mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)的情况,需要去修改C:\Python36\Lib\site-packages\django\db\backends\mysql的base.py文件。

  遇到MySQLdb模块找不到的情况,需要去修改C:\Python36\Lib\site-packages\django\db\backends\mysql的base.py文件和introspection.py文件,将其中的from MySQLdb import XXX中的MySQLdb改为我们使用的pymysql即可。

附图:

Django的admin定制_Django_02

Django的admin定制_mysql_03

Django的admin定制_mysql_04





更多内容详见微信公众号:Python研究所

Django的admin定制_mysql_05