Django Admin后台管理功能使用
前言
用过Django框架的童鞋肯定都知道,在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行:
|
1
2
3
4
5
|
from django.contrib import adminurlpatterns = [ url(r'^admin/', admin.site.urls),] |
上边看到导入的admin模块,就是本节所要说的主要内容
主要功能
功能1:提供数据库管理功能
基于admin模块,可以实现类似数据库客户端的功能,对数据进行增删改查
功能2:二次开发
基于该模块的数据管理功能,可以二次定制一些实用的功能。
使用方法
步骤1:在settings.py中,INSTALLED_APPS中,加入django.contrib.admin
|
1
2
3
4
5
6
7
|
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', #admin依赖 'django.contrib.contenttypes', #admin依赖 'django.contrib.sessions', #admin依赖 ...... ] |
步骤2:urls.py创建admin路由
|
1
2
3
4
5
6
|
from django.contrib import adminurlpatterns = [ url(r'^admin/', admin.site.urls), .... ] |
步骤3:在settings.py配置文件中,中间件注册
|
1
2
3
4
5
6
|
MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', ....] |
步骤4:创建admin管理用户
|
1
|
python manage.py createsuperuser |
步骤5:在app 的models.py文件中创建表信息,即表类
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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中注册表
|
1
2
3
4
5
6
|
from django.contrib import admin# Register your models here.from app01 import modelsadmin.site.register(models.userinfo)admin.site.register(models.UserType) |
步骤7:生成表结构
|
1
|
python manage.py makemigrations && python manage.py migrate |
注意:在数据库表结构发生变动时,再次执行python manage.py makemigrations就会报错,这是因为此时表中可能已经有数据,貌然变动表结构会有影响,此时的解决方法有两种,一种是,设置新增字段的default='xxx'某个值, 但是这种通用性不是很好。 另外一种是,设置该字段null=True。即允许为空即可
步骤8:运行项目,登陆管理界面
|
1
2
3
|
python manage.py runserver访问URL:http://IP:8000/admin |
最终展示页面


显示出来这个页面,就表示admin已经可以正常管理了。
显示优化
优化1:显示字段信息
这时候去UserType里边添加几条数据后,会发现这几天数据都显示User Type object,显示很不友好。图示如下

处理办法就是去models.py中,修改class UserType类,增加
|
1
2
|
def __str__(self): return self.name |
增加之后,再次查看,就会显示用户之前增加的可视名称了

优化2:优化表单信息为中文显示
在userinfo表中,设置了verbose_name='用户名',这个参数的作用就是在用户添加信息的时候,显示“用户名”,而不是默认的name

本文转自:http://www.cnblogs.com/jishuweiwang/p/5943225.html
Django Admin后台管理功能使用的更多相关文章
- Django Admin后台管理功能使用+二次开发
一 使用环境 开发系统: windows IDE: pycharm 数据库: msyql,navicat 编程语言: python3.7 (Windows x86-64 executable in ...
- Python菜鸟之路:Django Admin后台管理功能使用
前言 用过Django框架的童鞋肯定都知道,在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行: from django.contrib import admin ...
- django admin后台管理功能的学习
1.简要说明 用过Django框架的童鞋肯定都知道,在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行: from django.contrib import a ...
- django带后台管理功能的网站
一.原起: 我大学是学的.Net平台.在那个平台上开发网站用的是ASP.NET这门技术:在那里对数据库的处理.为了 方便写代码,通常也是会用ORM(对象关系模型映射):毕业后搞起了MySQL数据库.自 ...
- Django Admin后台管理模块的使用
Admin后台管理模块的使用 Django的管理员模块是Django的标准库django.contrib的一部分.这个包还包括其它一些实用的模块: django.contrib.auth django ...
- Django admin 后台管理
在App 文件夹下的 admin.py 文件中写入 from django.contrib import admin from app名 import models admin.site.site_h ...
- Django Admin后台管理用户密码修改
方法一 在Terminal中执行:python manage.py changepassword your_name(其中“your_name”为你要修改密码的用户名),根据提示内容修改即可. 方法二 ...
- 1210 BBS admin后台管理及侧边栏筛选个人站点
目录 昨日内容 django admin后台管理 使用 建表 用户图片的显示 MEDIA用户配置 查找照片 搭建个人站点 防盗链 新建css文件 侧边栏展示标签 定义分类栏与标签栏 定义时间栏 侧边栏 ...
- 第三百七十八节,Django+Xadmin打造上线标准的在线教育平台—django自带的admin后台管理介绍
第三百七十八节,Django+Xadmin打造上线标准的在线教育平台—django自带的admin后台管理介绍 配置django的admin数据库管理后台 首先urls.py配置数据库后台路由映射,一 ...
随机推荐
- JDBC_09_Statement 和 PreparedStatement
Statement 和 PreparedStatement * Statement数据库操作对象存在SQL注入问题,而PreparedStatement预编译数据库操作对象解决了SQL注入问题. * ...
- zabbix容器化安装及监控docker应用
一.zabbix agent2 介绍 从Zabbix 4.4之后,官方推出了Zabbix Agent 2,意味着zabbix 不在只是物理机监控的代名词,现在你可以使用Go为Zabbix编写插件,来监 ...
- 基于MATLAB的手写公式识别(转折)
2021-03-29 21:11:00 很难说自己是不是上当受骗了,老师明明说利用MATLAB进行手写体(记得是手写体,再不济印刷体)的识别是轻而易举的. 平时我也十分喜欢MATLAB这一操作系统,认 ...
- JavaScript数组详解-全网最全
定义数组的方式 定义数组的方式有多种,分别如下 let array=[] (字面量) let array=new Array() let array=new Array([length]) lengt ...
- 脚本加载后执行JS回调函数的方法
动态脚本简单示例 // IE下: var HEAD = document.getElementsByTagName('head')[0] || document.documentElement var ...
- php变量的命名规则
php变量的命名规则 1.变量以美元符号$开头.如$name,$age: 2.美元符号$后面的第一个字符不可以是数字: 3.除了下划线_外,变量不允许出现任何空格或者标点符号: 4.PHP变量名是区分 ...
- Webuploader 简单图片上传 支持多图上传
简介: 通过webuploader 实现简单的图片上传功能,支持多张图上传 官方文档传送门:http://fex.baidu.com/webuploader/getting-started.html# ...
- POJ2446 二分匹配
题意: 给你一个n*m的格子,问你能不能用1*2的格子把他铺满,有的位置是不能被铺的. 思路: 水题,直接把个相邻的并且都是可以铺的点连一条边然后匹配一遍就行了,提醒一个地方,就 ...
- UVA10047独轮车
题意: 给你一个独轮车,轮子上有五个扇形,每过一个格子就转过一个扇形,刚开始的时候方向是向北的,绿色上行向下,每一次可以有三种操作,到下一个格子,左转90度,右转90度,每一次操作都花费时间 ...
- 开启Android应用调试选项的工具XDebug的介绍
本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/81187769 最近这段时间比较郁闷,就不分享和学习比较复杂的Android逆向技 ...