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管理工具的更多相关文章

  1. Django 之 admin管理工具

    -------------------------------------------------------------------------妄尝恶果,苦果自来. admin组件使用 Django ...

  2. Django的 admin管理工具

    admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLE ...

  3. Django框架 之 admin管理工具(组件使用)

    Django框架 之 admin管理工具(组件使用) 浏览目录 激活管理工具 使用管理工具 admin的定制 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理 ...

  4. 10.5Djang admin 管理工具

    2018-10-5 17:30:57 Django admin 管理工具  参考连接: https://www.cnblogs.com/yuanchenqi/articles/8323452.html ...

  5. 自定义admin管理工具(stark组件)

    自定义admin管理工具(stark组件) 创建项目 了解了admin的功能后,我们可以开始仿照admin编写我们自己的管理工具stark组件 首先创建一个新的项目,并创建三个app stark就是我 ...

  6. Django admin 管理工具

    admin 组件的使用 Django 提供了基于 web 的管理工具.Django 自动管理工具是 django.contrib 的一部分. INSTALLED_APPS = [ 'django.co ...

  7. Django——admin管理工具

    一.admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTAL ...

  8. Django 测试开发3 数据模型models和admin管理工具

    参考:https://blog.csdn.net/weixin_44510615/article/details/89425412 1.Django模型字段常用类型: IntegerField : 整 ...

  9. 吴裕雄--天生自然Django框架开发笔记:Django Admin 管理工具

    Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: ...

随机推荐

  1. java框架之SpringCloud(6)-Zuul路由网关

    介绍 Zuul 包含了对请求的路由和过滤两个最重要的功能: 其中路由功能服务将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础.而过滤的功能则负责对请求的处理过程进行干预,是实现请求校验 ...

  2. 解决bootstrap 模态框 数据清除 验证清空

    $("#switchModel").on("hidden.bs.modal", function () { $('#ware-form')[0].reset() ...

  3. Oracle数据库基础入门《一》Oracle服务器的构成

    Oracle数据库基础入门<一>Oracle服务器的构成 Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统,也是一 个高效的 SQL 语句执行环境. Oracle ...

  4. JS函数预解析(小记)

    一,预解析:寻找var  function  形参     a=undefined    fn = function fn(){ alert(); } 二,逐行解读代码:    1.表达式    2. ...

  5. git之关联远程仓库

    1.创建本地仓库. 2.与远程仓库交互. ----------------------------------------------------------------------------

  6. [ Build Tools ] Repositories

    仓库介绍 http://hao.jobbole.com/central-repository/ https://my.oschina.net/pingjiangyetan/blog/423380 ht ...

  7. python报错之OSError

    刚刚练一下xlrd模块的时候,竟然报错了! 百度了一下,才知道,是自己直接复制粘贴导致的:最好直接搜索\u202a才找到解决办法 所以只需从写换个地方复制路径或则重新手动输入一次就解决了 参考链接:h ...

  8. GoldenGate 12.3 MA架构介绍系列(5) - 静默安装

    软件下载地址 http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html 下载基于MicroService ...

  9. TPS54331 TPS54332 3.5V to 28V Input, 3A, 570kHz Step-Down Converter with Eco-mode

    The TPS54331 is a 28-V, 3-A non-synchronous buck converter that integrates a low RDS(on) high side M ...

  10. Linux 查看网卡流量、网络端口

    查看网络流量 # 查看网卡流量 命令:sar -n DEV 1 10 注:每1秒 显示 1次 显示 10次 平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcm ...