零、预备知识 单例对象

  方式一:__new__方法

  方式二:模块导入,只要在引入的文件中实例了这个对象,不管引道哪里,这个对象都指向同一个内存空间

1 class My_singleton(object):
2     def foo(self):
3         print("ok")
4
5 my_singleton = My_singleton()

from xxx import my_singleton
my_singleton.foo()

一、Xadmin之注册与生成url

在Xadmin.apps中:

1 from django.apps import AppConfig
2 from django.utils.module_loading import autodiscover_modules
3
4 class XadminConfig(AppConfig):
5     name = 'Xadmin'
6
7     def ready(self):  #调用这个类时自动执行
8         autodiscover_modules('Xadmin')  #从admin.py文件中复制,读取每个app中Xadmin.py文件

在Xadmin.py中:

 1 from django.conf.urls import re_path
 2 from django.shortcuts import HttpResponse
 3
 4
 5 class ModelXadmin(object):
 6     def __init__(self,model,site):
 7         self.model = model
 8         self.site = site
 9
10     def list_view(self,request): #查询界面
11         return HttpResponse("list_view")
12     def add_view(self,request):  #增加界面
13         return HttpResponse("add_view")
14     def change_view(self,request,id):  #修改界面
15         return HttpResponse("change_view")
16     def delete_view(self,request,id):  #删除界面
17         return HttpResponse("delete_view")
18
19     @property
20     def urls(self):
21         temp = []
22
23         temp.append(re_path(r'^$',self.list_view))
24         temp.append(re_path(r'^add/$',self.add_view))
25         temp.append(re_path(r'^(\d+)/delete/$',self.delete_view))
26         temp.append(re_path(r'^(\d+)/change/$',self.change_view))
27
28         return temp,None,None
29
30
31 class XadminSite(object):
32     def __init__(self):
33         self._registry = {}
34
35     def register(self,model,Xadmin_class=None,**options):
36         if not Xadmin_class:
37             Xadmin_class = ModelXadmin
38         self._registry[model] = Xadmin_class(model,self)  #{Book:ModelXadmin(Book)}
39
40     @property
41     def urls(self):
42
43         temp = []
44
45         for model,Xadmin_class in self._registry.items():
46             app_name = model._meta.app_label   #取相应app的名字
47             model_name = model._meta.model_name   #取相应model的名字
48
49             temp.append(re_path(r'^{0}/{1}/'.format(app_name,model_name),Xadmin_class.urls))#
50
51         return temp,None,None
52
53
54 site = XadminSite()  #创建单例对象

在app的Xadmin.py中:

1 from Xadmin.service import Xadmin
2 from app02 import models
3
4 Xadmin.site.register(models.Food)
5 Xadmin.site.register(models.Order)

转载于:https://www.cnblogs.com/yinwenjie/p/10373959.html

Django之Xadmin相关推荐

  1. django安装xadmin及问题处理

    文章目录 一,安装 二,注册 xadmin: 三,配置 URL: 四,数据迁移并创建超级用户 五,收集media 六,运行项目,解决错误 1,ImportError: cannot import na ...

  2. django使用xadmin

    django使用xadmin xadmin特点: 1.支持在多种屏幕上无缝浏览 2.内置功能丰富 3.强大的插件系统 4.可以直接在后台对表进行增删改查 安装xadmin 注意:是pip instal ...

  3. Django扩展xadmin后台管理

    python:3.7.2 django:2.1.2 githup:https://github.com/sshwsfc/xadmin 安装xadmin django版本2.0及以上一不能使用pip i ...

  4. Django配置xadmin后台模板之坑(一)

    环境: Python3.6 + Django2.0 + xadmin2.0 一.安装 1.首先安装就会有一个坑,很多教程的安装是直接在虚拟环境下使用 pip install xadmin 或者 pip ...

  5. django整合xadmin

    Contents [hide] 1 运行环境 2 安装xadmin 2.1 方式1 2.2 方式2:安装修复包 3 创建Django项目 3.1 同步数据表 3.2 创建管理员 3.3 进入xadmi ...

  6. django集成 xadmin 踩的坑

    一.下载源代码,并安装源码到django项目 源代码官网:https://github.com/sshwsfc/xadmin/tree/django2 1.安装依赖 将源代码下载到本地,并进入到源代码 ...

  7. Django 配置xadmin

    1.安装xamin pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2 2.将xadmin app 添加到setthi ...

  8. Django实现xadmin后台二级联动、三级联动(提供另一种实现方式)

    目录 一.先看下app文件目录 二.编写models.py样例 三.确定二级数据和js内容 1.编写路由urls.py 2.views传递数据,json格式 3.定制js文件 四.在adminx.py ...

  9. Django-安装xadmin的方法及主要配置方法

    历经千辛万苦,终于实现了django2.1中xadmin的使用 被论坛里各路神仙带跑N次 准确说是几个小时 直接colne https://github.com/Liu0330/xadmin 工作系统 ...

最新文章

  1. 考研成绩查询系统(jsp、mysql、java)
  2. jvm性能调优 - 19G1分代回收原理深度图解
  3. java影院购票系统开题报告,开题报告-网上电影院购票系统的设计与实现.doc
  4. Educational Codeforces Round 114总结
  5. cocos2d-lua3.7组件篇(三)-http通信demo
  6. 打印hello world java_java – 如何打印“hello world”?
  7. win2008 查询 tcp连接失败_TCP详解(转)
  8. pycharm-连接mysql设置
  9. 在C#后代码里使用IE WEB Control TreeView
  10. vuforia的物体识别能识别大物体吗_衢州sensopart 物体识别检测视觉-灵测信息
  11. 2DToolkit官方文档中文版打地鼠教程(一):初始设置
  12. java集群解析文件_java相关:springboot整合redis集群过程解析
  13. 小程序调用百度api实现图像识别
  14. 微信api接口调用-触发推送微信群聊列表
  15. 人脸检测实战终极:使用 OpenCV 和 Python 进行人脸对齐
  16. RGB颜色对照表以及十六进制
  17. Windows Server 2012 R2 安装补丁KB2999226提示此更新不适合用于计算机
  18. mysql中约束由数字构成_MySQL 数据类型和约束(外键是重点)
  19. 《用于自动越野导航的实时语义映射》论文笔记
  20. python中isin函数_python中Isin函数是什么

热门文章

  1. 自己实现JSON、XML的解析 没那么难
  2. Spark Streaming的窗口操作
  3. 史上最全的JUC并发图
  4. 从网游策划谈《梦幻西游》的成功之道
  5. Go语言讲解深拷贝与浅拷贝
  6. 使用postman请求响应Invalid CORS request
  7. 用函数式编程,从0开发3D引擎和编辑器(三):初步需求分析
  8. A Convolutional Neural Network for Modelling Sentences阅读笔记
  9. 【模板】并查集 两种路径压缩写法(类模板和函数模板)
  10. 34、JS/AJAX