前言

通常一个网站开发,需要有个后台管理功能,比如用后台管理发布文章,添加用户之类的操作。django的admin后台管理主要可以实现以下功能

  • 基于admin模块,可以实现类似数据库客户端的功能,对数据进行增删改查
  • 于该模块的数据管理功能,可以二次定制一些实用的功能。

settings.py配置

在INSTALLED_APPS中,默认已经添加相关模块, 可以不用管

  • django.contrib.admin 管理站点
  • django.contrib.auth 认证系统
  • django.contrib.contenttypes 用于内容类型的框架
  • django.contrib.sessions 会话框架
  • django.contrib.messages 消息框架
  • django.contrib.staticfiles 管理静态文件框架
# Application definition

INSTALLED_APPS = [
'django.contrib.admin', # 管理站点
'django.contrib.auth', # 认证系统
'django.contrib.contenttypes', # 用于内容类型的框架
'django.contrib.sessions', # 会话框架
'django.contrib.messages', # 消息框架
'django.contrib.staticfiles', # 管理静态文件框架
'hello', # 应用app
]

urls.py创建

urls.py创建admin后台的访问路径

from django.contrib import admin
from django.conf.urls import url urlpatterns = [
url(r'^admin/', admin.site.urls),
....
]

创建admin管理用户

django默认是没管理员用户的,需要执行指令,手动创建一个admin账号

python manage.py createsuperuser

如下创建的管理员用户名admin, 配置邮箱 283340479@qq.com,密码设置123456

D:\web_djo\helloworld>python manage.py createsuperuser
Username (leave blank to use 'admin'): admin
Email address: 283340479@qq.com
Password:
Password (again):
This password is too short. It must contain at least 8 characters.
This password is too common.
This password is entirely numeric.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

models.py文件创建表

在app 的models.py文件中创建表信息,即表类,相关操作参考前面的一篇https://www.cnblogs.com/yoyoketang/p/10331049.html

# models.py

from django.db import models

# Create your models here.

# 我们新建了一个Person类,继承自models.Model,
class Person(models.Model):
name = models.CharField(max_length=30)
age = models.IntegerField() # 新增一张用户表,表名为user 字段user_name, psw ,mail 都是字符串类型
class User(models.Model):
user_name = models.CharField(max_length=30,
primary_key=True) # 设置为主键
psw = models.CharField(max_length=30)
mail = models.CharField(max_length=30)

创建表之后需执行

python manage.py makemigrations

python manage.py migrate

访问admin后台

在浏览器上访问后台http://localhost:8000/admin/,用户名和密码就是刚才新建的admin 123456

访问后查看到的页面

刚才新建的User和Person并没有显示在这里,需要在admin.py中注册表

admin.py注册表

如果想让新建的表,显示到后台管理里面,需要在admin.py中添加注册信息,如下在admin.py中注册2个表信息

# admin.py
from django.contrib import admin
from hello import models # Register your models here.
admin.site.register(models.User)
admin.site.register(models.Person)

接着刷新下页面,就能看的刚才注册的2个表信息了

显示优化

打开一张表查看详细信息,显示的是User object这种内容,如果想显示具体的标名称,可以用__str__方法,相关语法参考https://www.cnblogs.com/yoyoketang/p/10342017.html

于是可以优化models.py里面的代码,加上一个def __str__(self):

class Person(models.Model):
'''用户信息'''
name = models.CharField(max_length=30)
age = models.IntegerField() def __str__(self):
return self.__doc__ + ":name>" + self.name class User(models.Model):
'''注册表'''
user_name = models.CharField(max_length=30,
primary_key=True)
psw = models.CharField(max_length=30)
mail = models.CharField(max_length=30) def __str__(self):
return self.__doc__ + ":user_name->" + self.user_name

刷新amdin后台页面后显示

选个记录点进去就可以对相应的数据增删改查了

django交流QQ群:779429633

python测试开发django-17.admin后台管理的更多相关文章

  1. django的admin后台管理

    Admin后台管理 要进入admin后台管理首先要创建管理员账户 createsuperuser 其中密码要大于8位 使用之前要到应用下的admin.py中注册要管理的模型表 from django. ...

  2. Django框架admin后台管理和用户端静态文件

    目录 一.admin后台管理 1. 如何使用 2. 路由分发的本质 二.用户上传的静态文件的展示 1. media配置 2. 手动开设media接口 三.图片防盗链 一.admin后台管理 djang ...

  3. django的admin后台管理如何更改为中文

    新建Django的admin后端控制为英文显示,为了可以使其显示中文,可以将 setting.py配置文件修改 # LANGUAGE_CODE = 'en-us' # # # # # TIME_ZON ...

  4. django 之admin后台管理

    数据库 from django.db import models from django.contrib.auth.models import User from django.contrib.aut ...

  5. python测试开发django-34.xadmin管理后台

    前言 django自带的admin后台管理页面有点丑陋,于是网上的大神优化了一版后台管理xadmin,并且开源了,在github开源下载到源码. 注意环境搭配: django 2.1.2 xadmin ...

  6. python测试开发django-32.admin后台多对多关系ManyToManyField

    前言 一本书可以有多个作者,一个作者也可以写多本书,这种关系就是本篇要说的多对多关系. 这种场景在django里面数据库设计时候,需要用到ManyToManyField方法 多对多表设计 auther ...

  7. python测试开发django-19.admin后台自定义显示

    前言 django的admin后台默认显示的内容很少,只显示了表的相关信息,查看字段内容需点开详情才能查看,不是很直观. 在admin.py文件里面是可以自定义相关的展示内容的,也可以添加搜索框,快速 ...

  8. python测试开发django-18.admin后台中文版

    前言 django的admin后台页面默认是英文的,不喜欢英文的话,可以改下setting.py里面的语言设置,改成中文版的显示 语言设置 打开setting.py,找到以下内容 # Internat ...

  9. 第三百七十八节,Django+Xadmin打造上线标准的在线教育平台—django自带的admin后台管理介绍

    第三百七十八节,Django+Xadmin打造上线标准的在线教育平台—django自带的admin后台管理介绍 配置django的admin数据库管理后台 首先urls.py配置数据库后台路由映射,一 ...

随机推荐

  1. vue 数组

    今天项目中发现的一个问题: 在vue项目中输出一个数组,明明有俩个值:0,6,但是length为1 正常的是这样的 结果研究发现,是vue源码的问题,具体内容如下: 转载自:http://www.cn ...

  2. 转:vue-router 2.0 常用基础知识点之router.push()

    转载地址:http://www.jianshu.com/p/ee7ff3d1d93d router.push(location) 除了使用 <router-link> 创建 a 标签来定义 ...

  3. C语言:指针实现输出梯形字符串

    用指针实现,实现过程无需将子串复制到一个新的字符串中.(10分) 题目内容: 用指针实现,实现过程无需将子串复制到一个新的字符串中. 输入格式: 字符串 输出格式: 子串 输入样例: computer ...

  4. vue后台管理框架

    vue后台管理框架 系列教程<一步步带你做vue后台管理框架>第一课 github地址:vue-framework-wz 线上体验地址:立即体验 在如今的科技公司中有很多前端的需求都是要写 ...

  5. windows下安装mysql8.0压缩版

         下面总结下安装过程: 首先解压下载好的压缩版本. 将解压后mysql的bin文件目录配置系统环境path变量中 使用cmd打开命令窗口,输入mysqld  --initialize命令初始化 ...

  6. mysql 事务隔离级别 详解

    问题 在工作中真实遇到的问题:用python连接mysql,查询数据,同时有别的代码在更新mysql中的数据,前者是一直是保持连接的数据库,每一分钟select一次,但第二次却查不到更新后的数据?wh ...

  7. P1102 A-B数对

    P1102 A-B数对用map过掉,可以当高效的桶排用,map<long long,int>m;意思是m[long long]==int; #include<iostream> ...

  8. 基于jquery的简洁树形折叠菜单

    先上效果图: 最小的ul就是一个最小的树枝,空间允许时可无限扩展.html如下: <div class="panel panel-default"> <div c ...

  9. 大纲2.3 Internet

    Internet:域名系统基础知识和配置,上网查询访问的方法,常用电子邮件的种类和收发电子邮件的方法,网络信息搜索,网络信息下载.上传的基本方法,网络信息共享方法. DNS域名系统 域名 不区分大小写 ...

  10. Wannafly挑战赛24游记

    Wannafly挑战赛24游记 A - 石子游戏 题目大意: A和B两人玩游戏,总共有\(n(n\le10^4)\)堆石子,轮流进行一些操作,不能进行下去的人则输掉这局游戏.操作包含以下两种: 把石子 ...