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管理模块来轻松实现后 ...
随机推荐
- sqlServer:行列转换之多行转一行
1.建表:学生表(姓名,学科,成绩) CREATE TABLE teststudent( stuname varchar(50) NULL, subjects varchar(50) NU ...
- js正则表达式——数字校验
// 只能输入正数 function clearNoNum(obj) { // 只能输入数字和小数点的文本框, 只能输入小数点后两位 obj.value = obj.value.replace(/[^ ...
- [Spark][Streaming]Spark读取网络输入的例子
Spark读取网络输入的例子: 参考如下的URL进行试验 https://stackoverflow.com/questions/46739081/how-to-get-record-in-strin ...
- 基于HTML5 的互联网+地铁行业
前言 近几年,互联网与交通运输的融合,改变了交易模式,影响着运输组织和经营方式,改变了运输主体的市场结构.模糊了运营与非营运的界限,也更好的实现了交通资源的集约共享,同时使得更多依靠外力和企业推动交通 ...
- Jquery密码强度校验
function passValidate(){ var password=$password.val().trim() if(password===""){ $mima.addC ...
- PowerShell-自定义函数(五)-参数互斥:ParameterSetName
转自:https://blog.51cto.com/38088444/1920978 这一篇我们来讲一下参数的互斥,何谓参数互斥呢.用九胖风格的话说就是互怼,有我没你,有你没我. 例如我们为一个Pin ...
- Linux 系统巡检常用命令
Linux系统巡检常用命令 # uname -a # 查看内核/操作系统# cat /etc/centos-release # 查看centos操作系统版本# cat /proc/cpuinfo ...
- SELECT list is not in GROUP BY clause and contains nonaggregated column
报错如下: Expression # of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘sss.m ...
- Python——Django-模板
一.模板的种类 1.变量 {{变量名}} 2.语句类{% %} 2.1 {%for i in booklist%} {{i}} {%endfor%} 2.2 {%if 10>5%} {%else ...
- Python量化交易
资料整理: 1.python量化的一个github 代码 2.原理 + python基础 讲解 3.目前发现不错的两个量化交易 学习平台: 聚宽和优矿在量化交易都是在15年线上布局的,聚宽是15年的新 ...