Django之Xadmin
零、预备知识 单例对象
方式一:__new__方法
方式二:模块导入,只要在引入的文件中实例了这个对象,不管引道哪里,这个对象都指向同一个内存空间
class My_singleton(object): def foo(self): print("ok") my_singleton = My_singleton()
from xxx import my_singleton my_singleton.foo()
一、Xadmin之注册与生成url
在Xadmin.apps中:
from django.apps import AppConfig from django.utils.module_loading import autodiscover_modules class XadminConfig(AppConfig): name = 'Xadmin' def ready(self): #调用这个类时自动执行 autodiscover_modules('Xadmin') #从admin.py文件中复制,读取每个app中Xadmin.py文件
在Xadmin.py中:
from django.conf.urls import re_path from django.shortcuts import HttpResponse class ModelXadmin(object): def __init__(self,model,site): self.model = model self.site = site def list_view(self,request): #查询界面 return HttpResponse("list_view") def add_view(self,request): #增加界面 return HttpResponse("add_view") def change_view(self,request,id): #修改界面 return HttpResponse("change_view") def delete_view(self,request,id): #删除界面 return HttpResponse("delete_view") @property def urls(self): temp = [] temp.append(re_path(r'^$',self.list_view)) temp.append(re_path(r'^add/$',self.add_view)) temp.append(re_path(r'^(\d+)/delete/$',self.delete_view)) temp.append(re_path(r'^(\d+)/change/$',self.change_view)) return temp,None,None class XadminSite(object): def __init__(self): self._registry = {} def register(self,model,Xadmin_class=None,**options): if not Xadmin_class: Xadmin_class = ModelXadmin self._registry[model] = Xadmin_class(model,self) #{Book:ModelXadmin(Book)} @property def urls(self): temp = [] for model,Xadmin_class in self._registry.items(): app_name = model._meta.app_label #取相应app的名字 model_name = model._meta.model_name #取相应model的名字 temp.append(re_path(r'^{0}/{1}/'.format(app_name,model_name),Xadmin_class.urls))# return temp,None,None site = XadminSite() #创建单例对象
在app的Xadmin.py中:
from Xadmin.service import Xadmin from app02 import models Xadmin.site.register(models.Food) Xadmin.site.register(models.Order)
Django之Xadmin的更多相关文章
- Django+Celery+xadmin实现异步任务和定时任务
Django+Celery+xadmin实现异步任务和定时任务 关注公众号"轻松学编程"了解更多. 一.celery介绍 1.简介 [官网]http://www.celerypro ...
- python框架Django使用xadmin管理后台数据
Django使用xadmin管理后台数据 关注公众号"轻松学编程"了解更多. 作用:xadmin比Django内置的admin更美观.更方便. 一.导入xadmin(第三方库) 方 ...
- Django安装Xadmin步骤
在Django中安装Xadmin替换原始的admin,下面介绍两种方法安装 第一种方法:pip安装 第一步: 直接pip安装xadmin pip install xadmin pip会同时安装上面三个 ...
- Django配置xadmin后台模板之坑(一)
环境: Python3.6 + Django2.0 + xadmin2.0 一.安装 1.首先安装就会有一个坑,很多教程的安装是直接在虚拟环境下使用 pip install xadmin 或者 pip ...
- Django集成Xadmin list index out of range报错解决方案
return self.render(context) File "C:\Python36\lib\site-packages\django\template\defaulttags.py& ...
- django 配置xadmin
django xadmin本地安装 百度云 下载,激活码:bxhv,下载后不需要解压,直接本地 pip install xxx.zip django 版本需要 1.1.11, 1,添加app INST ...
- Django使用xadmin集成富文本编辑器Ueditor(方法二)
一.xadmin的安装与配置1.安装xadmin,其中第一种在python3中安装不成功,推荐第二种或者第三种 方式一:pip install xadmin 方式二:pip install git+g ...
- django使用xadmin
一.安装xadmin 由于我用的是Django2.0以后的版本 所以无法直接通过pip install xadmin来安装 即使安装成功了 也会报乱七八糟的错误 https://github.com/ ...
- Django的Xadmin使用
Django Xadmin 通常在实际的开发当中, 除了前后端分离的项目, 还有一些前后端不分离的项目, 这样我们在访问不分离的页面的时候, 就可以通过Django自带的admin管理模块来轻松实现后 ...
随机推荐
- 二 Struts2 接收数据
struts2绑定页面参数三种方式1.普通属性:在action中写与页面参数相同的属性名,然后set方法2.用对象来接收:在action中写一个对象,表单元素名改为:对象名.属性名3.用实现Model ...
- 【Topcoder 1879】Scheduling
题意:给一个\(dag\),每一个点有一个访问时间. 现在可以同时访问两个点,但当连向这个点的所有点都被访问完成后才可以访问这个点. 问最短访问时间. 思路:一眼贪心.可惜是错的. 第二眼暴搜.就这么 ...
- richedit缩放
本程序下载地址: 要使文本在richedit控件上进行放大缩小,可以通过设置字体的大小,从而来达到缩放文本的目的. 下面是一个例子:通过调整滚动条,从而控制richedit文本缩放. 程序运行结果如下 ...
- 小小知识点(三)——MATLAB如何把三维图用二维图表示
MATLAB程序: x=-1:0.1:1; [x y] = meshgrid(x); %grid data = load("filename.txt"); figure mesh( ...
- Spring 简单使用IoC与DI——XML配置
目录 Spring简介 导入jar包 Spring配置文件 Spring的IoC IoC简介 快速使用IoC Spring创建对象的三种方式 使用构造方法 使用实例工厂 使用静态静态工厂 Spring ...
- mysql自动断开该连接解决方案
mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案 作者: MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL 就会断开该连接,而 c3p0 连接池则以为该被断 ...
- Python 字符编码及其文件操作
本章节内容导航: 1.字符编码:人识别的语言与机器机器识别的语言转化的媒介. 2.字符与字节:字符占多少个字节,字符串转化 3.文件操作:操作硬盘中的一块区域:读写操作 注:浅拷贝与深拷贝 用法: d ...
- FFT什么的
目录 多项式 多项式加法 多项式乘法 多项式的表示 系数表达 点值表达 系数形式表示的多项式的快速乘法 DFT&FFT&IDFT 单位复数根 DFT FFT IDFT 多项式乘法 蝶形 ...
- Python--logging模块不同级别写入到不同文件
将不同级别的logging 日志信息写入到不同文件 # -*- coding: utf-8 -*- import os import time import logging import inspec ...
- openCV 3.0 Ubuntu下编译问题
1.有个ipptv啥的东西下布下来,去官网下载放到相应目录 2.把编译器降级到5版本才能编译