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管理模块来轻松实现后 ...
随机推荐
- linux目录1
1.linux常用快捷键 2.linux命令之vmstat 3.linux命令之df 4.linux命令之netstat 5.linux命令之 tar 6.The authenticity of ho ...
- 数据库和SQL面试题基础知识(持续更新)
数据库方面基础知识复习 常问小问题: 一.like查询大小写问题: sql查询结果去重 SELECT distinct name FROM 表:平均数avg 一.like查询大小写问题: ①用bina ...
- spring boot 表单验证
1 设置某个字段的取值范围 1.1 取值范围验证:@Min,@Max ① 实例类的属性添加注解@Min ② Controller中传入参数使用@Valid注解 1.2 不能为空验证:@NotNull ...
- kettle集群(转换)
1.定义子服务器 新建子服务器中有一个必须为主服务器 新建集群 在需求集群运行的步骤中右键集群进行使用
- 关于dubbo+zookeeper微服务的一些认识记录
借鉴架构示意图: 实例介绍: 公司某项目架构 服务器A:nginx 服务器BC:tomcat1.tomcat2 服务器D:Dubbo+zookeeper 服务器EF:db1+zookeeper.db2 ...
- Python学习之路——装饰器
开放封闭原则:不改变调用方式与源代码上增加功能 ''' 1.不能修改被装饰对象(函数)的源代码(封闭) 2.不能更改被修饰对象(函数)的调用方式,且能达到增加功能的效果(开放) ''' 装饰器 # 把 ...
- vue脚手架工具
1.安装node.js 2.安装vue-cli npm install vue-cli -g vue -V(-V大写)查看版本信息 3.安装webpack 4.初始化项目 vue init webpa ...
- Django+Vue打造购物网站(四)
首页商品类别数据显示 商品分类接口 大概需要两个,一个显示三个类别 一个显示类别及类别下的全部商品 现在开始写商品的接口 首先编写三个分类的serializer class CategorySeria ...
- MYSQL IN 出现的慢查询问题
IN = https://blog.csdn.net/solmyr_biti/article/details/54293492 https://www.cnblogs.com/wxw16/p/6105 ...
- [manjaro]换源到中国并按照速度排序
sudo pacman-mirrors -i -c China -m rank 勾选第一行的源.