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/ ...
随机推荐
- HDU-5072 补集转化+容斥原理
题意:给n个数,求满足一下条件的三元组(a,b,c)数量:a,b,c两两互质或者a,b,c两两不互质. 解法:这道题非常巧妙地运用补集转化和容斥原理.首先我们令这n个数为n个点,然后两两之间连边如果是 ...
- 【服务端开发-杂】REST 和 Graphql
基本知识链接: 1.[译]对比GraphQL与REST——两种HTTP API的差异:https://www.jianshu.com/p/2ad286397f7a 2. 怎样用通俗的语言解释REST, ...
- MD5文件去重
//计算文件的MD5码 private string getMD5Hash(string pathName) { string strResult = ""; string str ...
- thinkphp 根据文件后缀的不同返回不同的结果
** * 根据文件后缀的不同返回不同的结果 * @param string $str 需要判断的文件名或者文件的id * @return integer 1:图片 2:视频 3:压缩文件 4:文档 5 ...
- 为何使用Html5+CSS3
一:大多浏览器支持,低版本也没问题 我看点这方面的资料,是为了做手机应用网站(有三个方案,这个是备用方案),可以开发响应式网站,可以脱离开发平台进行跨平台. 在Html5网页中引入Modernizr, ...
- nginx防止SQL注入规则
$request_uriThis variable is equal to the *original* request URI as received from the client includi ...
- [jzoj5840]Miner 题解(欧拉路)
首先考虑第一问.每个联通块的情况是相对独立的,所以可以分别求每个联通块的答案.无向图中存在欧拉路的条件是奇点数为0或2,那么合法方案肯定是tp到一个奇点,通过一条欧拉路到另一个奇点,再tp到另一个奇点 ...
- PHP基础知识总结(三) 流程控制、函数、类对象和数据库
PHP基础语法 1.流程控制 条件语句:if elseif else / switch if($a == 1){ …… } elseif ($a == 2){ …… } else{ …… } 循环 ...
- JS-JSDoc
http://usejsdoc.org/ 生成 JSDoc 格式的注释: sublime:安装 DocBlockr VSCode:自带 JSDoc 插件
- selenium自动化测试时,chrome 出现“Chrome 正受到自动测试软件的控制”的解决办法
背景 使用selenium自动化测试的时候,启动浏览器出现'Chrome正在受到自动软件的控制'的问题,修改方法有两种. 一.在浏览器配置里加个参数,忽略掉这个警告提示语:disable_infoba ...