python_django_admin
admin 是Django提供的基于web的管理工具,是系统管理员用于数据的输入,删除和查询的管理工具。
超级管理员在settings中的集成:INSTALLED_APPS=['django.contrib.admin']
1.创建超级用户:python manage.py createsuperuser

2.浏览器登录用户

3.添加自己的数据模型
from django.db import models class Grade(models.Model):
gradeid = models.CharField(max_length=20)
g_name = models.CharField(max_length=15) def __str__(self): # 在Django管理中userModel object显示为姓名
return self.g_name class Student(models.Model):
s_name = models.CharField(max_length=20)
s_age = models.IntegerField()
s_sex = models.BooleanField(default=True) # 默认为男
s_gradeid = models.ForeignKey(Grade, on_delete=models.CASCADE)
def __str__(self):
return self.s_name
对应models.py
在admin中注册需要管理的数据库表:
from myapp.models import Student, Grade admin.site.register([Student, Grade])
效果:

设置界面为中文:(在settings.py中修改配置如下)
# LANGUAGE_CODE = 'en-us'
#
# TIME_ZONE = 'UTC' LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/shanghai' USE_I18N = True USE_L10N = True # USE_TZ = True
USE_TZ = False # 关闭时区
4.添加自己的管理类(在admin.py中定义类):
from django.contrib import admin from myapp.models import Student, Grade # 添加自己的管理类
class StudentAdmin(admin.ModelAdmin):
def sex(self): # 对性别的true/false进行处理
if self.s_sex:
return '男'
else:
return '女'
sex.short_description = '性别' # 设置显示标题
list_display = 's_name', sex # 在student页显示表,s_name/s_gradeid分别为models中的字段
search_fields = 's_name', 's_age' # 可搜索的字段名
list_filter = 's_name', 's_age' # 过滤字段
list_per_page = 2 # 分页,每页显示多少条数据
fieldsets = (
('基本信息', {'fields': ('s_name', 's_age')}), # fields :显示的字段
('可选信息', {'fields': ('s_gradeid', 's_sex')}) # exclude:不显示的字段
) admin.site.register(Student, StudentAdmin) # 注册
效果1:student的显示

效果2:显示方式

5.admin中的级联
from django.contrib import admin from myapp.models import Student, Grade class StudentInfo(admin.TabularInline):
extra = 3 # 创建的基础条数
model = Student # 连接的表 class GradeAdmin(admin.ModelAdmin):
inlines = [StudentInfo] admin.site.register(Grade, GradeAdmin)
效果:

6.修改Django管理的HTML页面
- 重写django中的HTML的页面
- 运用第三方的admin,如xadmin、Django suit等(https://github.com/vinta/awesome-python#admin-panels)
python_django_admin的更多相关文章
- 用node-webkit(NW.js)创建桌面程序
以往写windows桌面程序需要用MFC.C#之类的技术,那么如果你只会web开发技术呢?或者说你有一个网站,但是你想把你的网站打包成一个桌面应用程序,该如何做呢? 答案就是用node-webkit这 ...
- 使用node-webkit包装浏览器
node-webkit简称nwjs:开源地址 https://github.com/nwjs/nw.js 参考博客 https://www.cnblogs.com/soaringEveryday/p/ ...
随机推荐
- shell unique
由于uniq命令只能对相邻行进行去重复操作,所以在进行去重前,先要对文本行进行排序,使重复行集中到一起 1.文本行去重 (1)排序由于uniq命令只能对相邻行进行去重复操作,所以在进行去重前,先要对文 ...
- RabbitMQ学习第三记:发布/订阅模式(Publish/Subscribe)
工作队列模式是直接在生产者与消费者里声明好一个队列,这种情况下消息只会对应同类型的消费者. 举个用户注册的列子:用户在注册完后一般都会发送消息通知用户注册成功(失败).如果在一个系统中,用户注册信息有 ...
- 力扣—Reorder List(重排链表)python实现
题目描述: 中文: 给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点 ...
- 力扣—one plus(加一) python实现
题目描述: 中文: 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头 ...
- (PASS)JAVA数组去重 三种方法 (不用集合)
第一种方法(只学到数组的看): 定义一个新的数组长度和旧数组的长度一样,存储除去重复数据的旧数组的数据和0, package demo01; import java.sql.Array; import ...
- Java集合类里面最基本的接口
Collection:代表一组对象,每一个对象都是它的子元素. Set:不包含重复元素的Collection. List:有顺序的Collection,并且可以包含重复元素. Map:可以把键(key ...
- css3-手把手 transform 小时钟
学习css3ing,正在学习transfomr,突发奇想用此做个小时钟,开始吧: 准备前期工作,把时钟的表盘,时分秒针,实时时间标签 的大概样子做好,效果如图: html代码如下: <div c ...
- Druid动态数据源配置
上文已经讲了单个数据源的Druid的配置(http://www.cnblogs.com/nbfujx/p/7686634.html) Druid动态数据源配置 主要是继承AbstractRouting ...
- 四轴电池ADC监控学习
一.硬件原理 电池供电通过两个分压电阻接地,STM32则在两电阻中间通过ADC检测电池电压.(引脚BAT_DET) 二.ADC通道初始化 //初始化电池检测ADC //开启ADC1的通道8 //Bat ...
- 2019 牛客暑期多校 B generator 1 (矩阵快速幂+倍增)
题目:https://ac.nowcoder.com/acm/contest/885/B 题意:给你x0,x1,让你求出xn,递推式时xn=a*xn-1+b*xn-2 思路:这个n特别大,我自己没有摸 ...