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管理模块来轻松实现后 ...
随机推荐
- VS2017 安装Swagger初步认识
1.安装NuGet包 2.配置 3.运行测试 参考博客:https://www.cnblogs.com/yilezhu/p/9241261.html 一 安装NuGet包 包名:Swashbuckle ...
- 0.[Andriod]之从零安装配置Android Studio并编写第一个Android App
0. 所需的安装文件 笔者做了几年WP,近来对Android有点兴趣,尝试一下Android开发,废话不多说,直接进入主题,先安装开发环境,笔者的系统环境为windows8.1&x64. 安装 ...
- 网络虚拟化基础一:linux名称空间Namespaces
一 介绍 如果把linux操作系统比作一个大房子,那命名空间指的就是这个房子中的一个个房间,住在每个房间里的人都自以为独享了整个房子的资源,但其实大家仅仅只是在共享的基础之上互相隔离,共享指的是共享全 ...
- 微信小程序代码快速转化为H5代码的方法!
1.把小程序html里面的如下标签对应改成小程序的标签,即可快速转化成H5的页面! 利用ctrl+H将下面的对应标签全部替换! html: <view === <div </view ...
- Visualize Code with Visual Studio
In this post, App Dev Manager Ed Tovsen spotlight the features and benefits of Code Maps in Visual S ...
- python基础4 列表和元组
一. 列表列表:python基础数据类型之一:其他语言中也有列表的概念,js 数组,可索引,可切片,可加步长li = ['hello', 100, True, [1, 2, 3], {'name':' ...
- Android的LinearLayout中orientation默认值为什么是HORIZONTAL
在一个偶然(闲着无聊)的过程中,突然非常好奇为什么LinearLayout在不指定排列方向为垂直(VERTICAL)时就得是水平方向(HORIZONTAL)排列的.产生这个疑问的时候脑子里蹦出来的第一 ...
- [问题]Android listView item edittext 不能调用软键盘输入法
android listview item edittext not softkeyboard edittext可以获取焦点, 可以触发事件, 但是就是不能调用输入法, 不知道为什么? 难道不能在i ...
- zsh fg: no job control in this shell.
图片的上面就是将一个应用按Ctrl+Z,把任务放到后台里面.没法fg将任务回到前台运行. 在.zshrc中添加set -m. 具体原因不明.我切换到root用户里,没有出现这个问题.将我的.zshrc ...
- python之路day02--格式化输出、初始编码、运算符
格式化输出 格式化输出替换字符串.字符串中%占位符,,%%s就是代表百分号,不代表占位符s 字符串 stringd 数字 dight name = input('请输入你的名字:') age = in ...