Python进入后台界面(admin)设定
前言
用过Django框架的童鞋肯定都知道,在创建完Django项目后,每个app下,都会有一个urls.py文件,里边会有如下几行:
※特别要注意下面标红颜色的部分[] 一般情况下不需要修改什么东西,只需要把括号修改一下即可
from django.contrib import admin urlpatterns = [
url(r'^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依赖
......
]
步骤2:urls.py创建admin路由
from django.contrib import admin urlpatterns = [
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 models class 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 models
admin.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 访问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

Python进入后台界面(admin)设定的更多相关文章
- python测试开发django-31.admin后台一对多操作ForeignKey
前言 平常的网页上有很多一对多的场景,比如填写银行卡信息的时候,会从银行列表下拉框选择对应的银行信息.一般会建两张表,一张表放银行的信息,一张表放银行卡信息. 每个银行可以对应多个银行卡,每个银行卡只 ...
- python测试开发django-32.admin后台多对多关系ManyToManyField
前言 一本书可以有多个作者,一个作者也可以写多本书,这种关系就是本篇要说的多对多关系. 这种场景在django里面数据库设计时候,需要用到ManyToManyField方法 多对多表设计 auther ...
- Part 2:模型与后台管理admin站点--Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- EasyUI的后台界面
EasyUI的后台界面搭建及极致重构 〇.前言 要了解一个东西长什么样,至少得让我们能看到,才能提出针对性的见解.所以,为了言之有物,而不是凭空漫谈,我们先从UI说起,后台管理页面的UI我们将使用应用 ...
- solr后台界面介绍——(十一)
1.加一个collection的方法 复制solr-home下的collection1,修改名字为collection2.并且修改collection2文件夹中配置文件core.properties中 ...
- django后台管理-admin
0922自我总结 django后台管理-admin 一.模型注册 admin.py 注册方式一: #在对于注册的app中的admin文件中导入模型然后注册模型 admin.site.register( ...
- Python 网站后台扫描
title date layout tags Python 网站后台扫描 2018-05-08 post Python #!/usr/bin/python # This was written for ...
- 【分享】国外后台界面HTML源码 [免费]
国外后台界面HTML模版下载,里面的文字是英文的,不过可以修改成中文,带有数据统计界面和曲线图,本套模板相对完整,在主界面上点击那些菜单,都可以点开二级页面,希望对搞代码的程序员,对不擅长美工的朋友提 ...
- 50个令人惊奇的jQuery插件(对话框和表单篇)及免费的响应式bootstrap管理员后台界面主题 - Charisma
http://www.woiweb.net/50-amazing-jquery-plugins.html 多文件文件下载 免费的响应式bootstrap管理员后台界面主题 – Charisma htt ...
随机推荐
- luogu 1593
$Answer = A ^ B $ 的因子之和 将 $A$ 进行质因数分解$A = p_1 ^ {a_1} P_2 ^ {a_2} p_3 ^ {a_3} \cdots p_k ^ {a_k}$ $A ...
- 斐波那契数列 矩阵乘法优化DP
斐波那契数列 矩阵乘法优化DP 求\(f(n) \%1000000007\),\(n\le 10^{18}\) 矩阵乘法:\(i\times k\)的矩阵\(A\)乘\(k\times j\)的矩 ...
- 使用DRBD+KEEPALIVED来实现NFS高可用
目录 一 DRBD介绍 二 DRBD的模式 三 DRBD的同步协议 四 实验环境 五 安装配置 关于脑裂(split-brain)处理 一 DRBD介绍 DRBD(Distributed Replic ...
- mvn ssm 异常 org.springframework.beans.factory.BeanCreationException:Error creating bean with name 'multipartResolver'
解决方案: 添加 commons-fileupload-1.2.jar <!-- https://mvnrepository.com/artifact/commons-fileupload/co ...
- MQ Cannot convert from [[B] to [] for GenericMessage
MQ消费端转换报错:主要错误信息:Caused by: org.springframework.messaging.converter.MessageConversionException: Cann ...
- [Codeforces1148C]Crazy Diamond——构造
题目链接: [Codeforces1148C]Crazy Diamond 题目大意: 给出一个$1\sim n$的排列要求将其排序,每次能交换两个位置的数当且仅当这两个位置下标差的绝对值大于等于$\f ...
- [TJOI2019]甲苯先生的字符串——矩阵乘法+递推
题目链接: [TJOI2019]甲苯先生的字符串 我们用一个$26*26$的$01$矩阵记录任意两个字符是否能相邻. 设$f[i][j]$表示处理完前$i$个字符,第$i$个字符为$j$的方案数. 可 ...
- 搭建vue-cli
https://www.cnblogs.com/wisewrong/p/8570309.html https://www.jianshu.com/p/1ee1c410dc67
- IIS Express(电脑无管理员权限如何启用VS调试)
转载页面:https://www.cnblogs.com/xbblogs/p/4756552.html(详细版) 直接按照红色字体步骤执行,其他字体可先忽略 出问题再详细看 1.设置配置文件 ...
- Leetcode题目437:路径总和III(递归-简单)
题目描述: 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二 ...