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配置数据库后台路由映射,一 ...
随机推荐
- day19.进程通信与线程1
1 进程Queue介绍 1 进程间数据隔离,两个进程进行通信,借助于Queue 2 进程间通信:IPC -借助于Queue实现进程间通信 -借助于文件 -借助于数据库 -借助于消息队列:rabbitm ...
- day7.文件处理
@字符编码 见:https://zhuanlan.zhihu.com/p/108805502 一.文件基本操作 ''' 1.什么是文件 文件是操作系统提供给用户或者应用程序的一种操作硬盘的 ...
- ArrayList扩容机制以及底层实现
简介 来源:博客园 作者:吾王彦 博客链接:https://www.cnblogs.com/qinjunlin/p/13724987.html ArrayList动态数组,是 java 中比较常 ...
- Java类初始化执行流程
测试代码: package com.test.ClassLaoderTest; public class test1 { public static String s_variable = " ...
- 各种平衡树收集(收集控(‐^▽^‐))\平衡树模板题的各种花式做法QAQ
非旋转treap!!!(FHQ Treap) 递归版Splay(无需维护父指针) Scapegoat _ Tree--替罪羊树(一只(棵)特立独行的猪(树)) 宗法树(平衡线段树\finger_tre ...
- 微信小程序中的自定义组件
微信小程序中的组件 前言 之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 ...
- 【MySQL】若sql语句中order by指定了多个字段,则怎么排序?
举个例子吧:order by id desc,time desc先是按 id 降序排列 (优先)如果 id 字段 有些是一样的话 再按time 降序排列 (前提是满足id降序排列) order b ...
- 【CompletableFuture】CompletableFuture测试runAsync()方法调用
问题 CompletableFuture.runAsync() 返回 CompletableFuture<Void>对象,调用CompletableFuture.allOf(f1,f2). ...
- hdu4499 搜索
题意: 给你一个棋盘,最大是5*5的,问你最多可以放多少个炮,炮和炮之间不可以相互攻击,这块只的是只能走一步,不存在两个炮中间三个棋子的情况.. 思路: 刚开始想的是把所有的空位置都 ...
- UC-Android逆向工程师面试第2题分析
博客链接:http://blog.csdn.net/qq1084283172/article/details/52133172 一.简介 这个题目是别人面试UC优视集团Android逆向工程师一职位的 ...