django之admin管理工具
admin组件
admin是django提供的基于web的管理工具
>如何使用:
1、激活管理工具
通常会在生成项目时在urls.py中自动设置好
from django.urls import path,re_path
#from django.conf.urls import url
from django.contrib import admin urlpatterns =[
path('admin/', admin.site.urls),
# url(r"^admin/", admin.site.urls), 旧版本写法
]
2、创建用户
通过命令 python manage.py createsuperuser 来创建超级用户
然后在浏览器中访问127.0.0.1:8000/admin/ 就会出现登录界面。
3、注册数据模型到admin
from app01.models import Book #在admin中注册模型中的某个类,即可在admin中实现增删改查
#简单使用
admin.site.register(Book) #获得更多的定制操作,需要利用ModelAdmin进行配置
#定制用法
class BookConfig(admin.ModelAdmin):
list_display = ('title', 'price','publish') #定制展示哪些列的内容 admin.site.register(Book,BookConfig)
常用的定制功能示例
from django.contrib import admin # Register your models here. from app02.models import * class BookConfig(admin.ModelAdmin):
#定制展示那些列
def show_authors(self,obj):
print(obj.authors.all())
return "/".join([obj.name for obj in obj.authors.all()])
list_display = ('title','price','publishDate','publisher','show_authors')
#定制可以点击跳转的列
list_display_links = ['price']
#定制右侧快速筛选功能
list_filter=['publisher']
#定制搜索查询
search_fields = ['title','price']
#定制可以编辑的列
list_editable = ['title']
#定制htnl模板
# change_list_template = 'mylist.html' #按price排序 降序
ordering = ['-price'] #批量初始化
def path_init(self,request,queryset):
queryset.update(price=111)
path_init.short_description = '批量修改价格为111' #对actiond的描述,可以不写
actions = [path_init,] admin.site.register(Book,BookConfig)
admin.site.register(Author)
admin.site.register(Publish)
admin.py
admin工作过程
1、加载所有app下的admin.py文件
2、在admin中注册模型类
3、基于二级分发设计url路由
admin的url配置
from django.contrib import admin
from django.urls import path,re_path from django.shortcuts import HttpResponse def test01(request):
return HttpResponse('test01....')
def test02(request):
return HttpResponse('test02...')
def test03(request):
return HttpResponse('test03...')
def test04(request):
return HttpResponse('test04...')
def test05(request):
return HttpResponse('test05...') def list_view(request):
return HttpResponse('查询') def add_view(request):
return HttpResponse("添加") def change_view(request,id):
return HttpResponse('修改') def delete_view(request,id):
return HttpResponse('删除') def get_urls2():
temp=[
path('',list_view),
path('add/',add_view),
re_path('(\d+)/change/',change_view),
re_path('(\d+)/delete/',delete_view),
]
return temp def get_urls():
print('----->',admin.site._registry) #{Book:BookConfig,....}
temp = []
for model,config_obj in admin.site._registry.items():
model_name = model._meta.model_name
app_label = model._meta.app_label
temp.append(
path("%s/%s/"%(app_label,model_name),(get_urls2(),None,None)),
)
return temp urlpatterns = [
path('admin/', admin.site.urls), #一级分发
# path('index/',([
# path('test01/',test01),
# path('test02/',test02),
# ],None,None)),
# #二级分发
path('index/',([
path('name/',([
path('alex/',test03),
path('egon/',test04)
],None,None)),
path('shop/',([path('apple/',test05)],None,None)),
],None,None)), #二级分发的应用
path('yuan/',(get_urls(),None,None)), ]
二级分发url
补充知识点:
>实现单例模式的方式
1、使用__new__
2、使用装饰器(decorator)
3、使用元类(metaclass)
4、基于模块实现单例
>通过模型类对象获取类名和应用名(字符串)
Book._meta.model_name ----->'book'
Book._meta.app_label-------->'app01'
django之admin管理工具的更多相关文章
- Django 之 admin管理工具
-------------------------------------------------------------------------妄尝恶果,苦果自来. admin组件使用 Django ...
- Django的 admin管理工具
admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLE ...
- Django框架 之 admin管理工具(组件使用)
Django框架 之 admin管理工具(组件使用) 浏览目录 激活管理工具 使用管理工具 admin的定制 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理 ...
- 10.5Djang admin 管理工具
2018-10-5 17:30:57 Django admin 管理工具 参考连接: https://www.cnblogs.com/yuanchenqi/articles/8323452.html ...
- 自定义admin管理工具(stark组件)
自定义admin管理工具(stark组件) 创建项目 了解了admin的功能后,我们可以开始仿照admin编写我们自己的管理工具stark组件 首先创建一个新的项目,并创建三个app stark就是我 ...
- Django admin 管理工具
admin 组件的使用 Django 提供了基于 web 的管理工具.Django 自动管理工具是 django.contrib 的一部分. INSTALLED_APPS = [ 'django.co ...
- Django——admin管理工具
一.admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTAL ...
- Django 测试开发3 数据模型models和admin管理工具
参考:https://blog.csdn.net/weixin_44510615/article/details/89425412 1.Django模型字段常用类型: IntegerField : 整 ...
- 吴裕雄--天生自然Django框架开发笔记:Django Admin 管理工具
Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: ...
随机推荐
- jquery网页倒计时效果,秒杀
function FreshTime(){ var endtime=new Date('2019-4-12 18:00:00');//结束时间 var nowtime = new Date();//当 ...
- 亿图图示 Edraw Max v9.2 完美破解版
主程序:http://www.edrawsoft.cn/2download/edrawmax-cn-9.2.exe破解补丁:https://www.lanzous.com/i1fjsyh 密码:52p ...
- Please run SwitchHosts! as an Administrator 原因
github 访问慢的初期,不得已修改host,但直接修改host的文件太不够灵活了,使用switchhost工具. win10 遇到上述问题如这个地址 要撞墙了. 解决方法: 进入 C:\Windo ...
- align-item 和 align-content的区别
align-content 和 align-items : 1:共同点:它们对齐方向为交叉轴 2:不同点:align-content 应用于为 多行 而 align-items:应用于单行.
- CSS中border和outline的区别
border: border-width:1px; border-style:solid; border-color:#ccc; 可以简写为:border:1ox solid #ccc; outlin ...
- nginx----------nginx日志详细分解
1.客户端(用户)IP地址.如:上例中的 47.52.45.228 2.访问时间.如:上例中的 [03/Jan/2013:21:17:20 -0600] 3.请求方式(GET或者POST等).如:上例 ...
- java输入输出流(I/O)总结
io流的 四个基本类 java.io包中包含了流式I/O所需要的所有类.在java.io包中有四个基本类:InputStream.OutputStream及Reader.Writer类,它们分别处理字 ...
- 双系统安装Ubuntu
U盘制作教程参考Ubuntu官网 1.Ubuntu安装 1)分出空闲空间:首先,在现有计算机下划出一个专门给Ubuntu的磁盘分区,推荐Windows自带的磁盘管理工具.快捷键“win+X”-> ...
- AARRR海盗模型简介
整理下AARRR模型的概念.实际应用场景等问题,初步感觉这个模型主要应用在APP应用分析中. 1.什么是AARRR模型 AARRR是Acquisition.Activation.Retention.R ...
- vue运行时 eslint 报“import/first” WARN deprecated browserslist 问题解决
vue运行时 eslint 报“import/first” WARN deprecated browserslist 问题解决 这个信息的意思是导入文件顺序不对,绝对导入应该放在相对导入前面.将绝对 ...