1.简要说明
用过Django框架的童鞋肯定都知道,在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行:
from django.contrib import admin from django.urls import path urlpatterns = [ path(‘admin/‘, admin.site.urls),
]
上边看到导入的admin模块,就是本篇所要说的主要内容:
功能1:提供数据库管理功能
基于admin模块,可以实现类似数据库客户端的功能,对数据进行增删改查
功能2:二次开发
基于该模块的数据管理功能,可以二次定制一些实用的功能。
步骤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依赖
‘django.contrib.messages‘,
]
步骤2:urls.py创建admin路由
from django.contrib import adminurlpatterns = [ url(r‘^admin/‘, admin.site.urls), .... ] |
步骤3:在settings.py配置文件中,中间件注册
MIDDLEWARE = [ ‘django.contrib.sessions.middleware.SessionMiddleware‘, ‘django.middleware.common.CommonMiddleware‘, ‘django.contrib.auth.middleware.AuthenticationMiddleware‘, ....] |
步骤4:创建admin管理用户
python manage.py createsuperuser |
步骤5:在app 的models.py文件中创建表信息,即表类
from django.db import modelsclass 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 modelsadmin.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 |
原文:https://www.cnblogs.com/dangkai/p/10948485.html