前言

通常一个网站开发,需要有个后台管理功能,比如用后台管理发布文章,添加用户之类的操作。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. opencv 彩色图像分割(inrange)

    灰度图像大多通过算子寻找边缘和区域生长融合来分割图像. 彩色图像增加了色彩信息,可以通过不同的色彩值来分割图像,常用彩色空间HSV/HSI, RGB, LAB等都可以用于分割! 笔者主要介绍inran ...

  2. js防止sql注入的参数过滤

    js防止sql注入的参数过滤 <script language="javascript"> <!-- var url = location.search; var ...

  3. Linux性能优化之磁盘优化(三)

    前言 关于本章内容,设计的东西比较多.这里会有关于文件系统.磁盘.CPU等方面的知识,以及涉及到关于这方面的性能排查等. 术语 文件系统通过缓存和缓冲以及异步I/O等手段来缓和磁盘的延时对应用程序的影 ...

  4. 【Ray Tracing The Next Week 超详解】 光线追踪2-1

     Preface 博主刚放假回家就进了医院,今天刚完事儿,来续写第二本书  Ready 我们来总结一下上一本书的笔记中我们的一些规定 1. 数学表达式 我们采用小写粗黑体代表向量,大写粗黑体代表矩阵, ...

  5. 使用GenericServlet实例

    使用GenericServlet实例 package com.kettas.servlet; import javax.servlet.* ; import java.io.* ; public cl ...

  6. Uncaught Error: Syntax error, unrecognized expression: [flag=]报错处理方法

    今早运行项目的时候报这个错误: 百度翻译的解释是:未命名错误:语法错误,未识别表达式:[FLAG= ]   也就是书写规范问题. 可是我查了对应的js: 字符串拼接没什么问题,经常这样写. 这时看报错 ...

  7. java 使用grpc步骤

    1.配置grpc maven依赖 <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-ne ...

  8. BZOJ4275 : [ONTAK2015]Badania naukowe

    设f[i][j]为a[1..i]与b[1..j]的LCS,g[i][j]为a[i..n]与b[j..m]的LCS. 若C为0,则ans=f[n][m]. 否则求出d[i]=a中从i开始往右匹配上c串的 ...

  9. 【BZOJ-4556】字符串 后缀数组+二分+主席树 / 后缀自动机+线段树合并+二分

    4556: [Tjoi2016&Heoi2016]字符串 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 657  Solved: 274[Su ...

  10. Codeforces Round #396 (Div. 2) B. Mahmoud and a Triangle 贪心

    B. Mahmoud and a Triangle 题目连接: http://codeforces.com/contest/766/problem/B Description Mahmoud has ...