Python相关点

Django 插件之 Xadmin

2017-12-31  本文已影响151人  __Cool

Django 是一个开放源代码的 Web 应用框架,由 Python 写成。Django 是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起 ORM ,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。

Django 自带的后台管理工具,在外观和功能便捷性方面是比较普通的,并不能让人十分满意,因此,许多的开发者开发出了比较具有鲜明特性的第三方后台管理工具,Xadmin 就是其中之一,下面记录 Xadmin 的特点及安装使用方法。

Xadmin 的特点

1、基于Bootstrap3

Xadmin 使用 Bootstrap3.0 框架精心打造。基于 Bootstrap3,Xadmin 天生就支持在多种屏幕上无缝浏览,并完全支持 Bootstrap 主题模板,让您的管理后台也动感、多样起来。

2、内置功能丰富

Xadmin 作为一款全面的后台管理系统框架,不仅提供了基本的 CRUD 功能,还内置了丰富的插件功能。包括数据导出、书签、图表、数据添加向导及图片相册等多种扩展功能。

3、真心强大的插件系统

Xadmin 的插件系统借鉴了其他领域成功框架的设计思想,让插件可以扩展系统的任何一个功能点。对于开发者,Xadmin 的插件开发简单;对于使用者,Xadmin 的插件安装方便。

Xadmin 的安装

方法一:通过 pip 安装
虚拟环境下:pip install xadmin
通过此命令安装,会同时安装 Xadmin 所需的依赖库:django-crispy-forms-1.6.1、django-formtools-2.0httplib2-0.9.2、以及 xadmin-0.6.1,
之后在 settings.py 文件中配置:

# settings.py
INSTALLED_APPS = [
    ...
    'crispy_forms',
    'xadmin',
]

urls.py 中配置,代替 Django 默认的 admin:

# urls.py
...
import xadmin
urlpatterns = [
    url(r'^xadmin/', xadmin.site.urls),
    ]

然后开始进行数据库的迁移 (默认的开发工具是 Pycharm):
在 run manage.py Task 中运行命令完成数据迁移:
makemigrations
migrate
可以看到数据库中多出几个数据表:

xadmin1.png

运行项目,在浏览器地址栏输入:http://127.0.0.1:8000/xadmin/,可以看到登录界面已经改变,如下:

xadmin2.png

方法二:通过源码安装 (优点:可对源码修改,体验更新特性)

浏览器地址栏输入:https://codeload.github.com/sshwsfc/xadmin/zip/master 下载源码,解压缩后将名为 xadmin 的文件夹拷贝进项目根目录下。

tips:
1、在根目录下新建一个名为 Third_apps 的 package (mark 为 sources root)可以方便管理第三方工具,保证项目可读性。然后将 xadmin 文件拉入其中。
2、通过源码安装,要手动安装 xadmin 的依赖包(见方法一)

然后在 settings.py 文件中配置:

# settings.py
sys.path.insert(0, os.path.join(BASE_DIR, 'Third_apps')) # 此行代码加上,确保项目配置正确
INSTALLED_APPS = [
    ...
    'crispy_forms',
    'xadmin',
]

urls.py 中配置,取代 Django 默认的 admin:

# urls.py
import xadmin
urlpatterns = [
    url(r'^xadmin/', xadmin.site.urls),
    ]

然后开始进行数据库的迁移 (默认的开发工具是 Pycharm):

在 run manage.py Task 中运行命令完成数据迁移:
makemigrations
migrate
基本配置步骤如方法一,方法二配置完成。

Xadmin 中 model 注册

在app 目录下,新建 adminx.py文件以完成原来 admin.py 的功能,注意不要混淆:

# adminx.py
import xadmin
from xadmin import views
from .models import Authors
class AuthorsAdmin(object):
    list_display = ['name', 'note', 'contact', 'add_time']  # 字段详情
    search_fields = ['name', 'note', 'contact']  # 搜索框功能
    list_filter = ['name', 'note', 'contact', 'add_time']  # 过滤器
xadmin.site.register(Authors, AuthorsAdmin)

models.py 中的例子模型:

# models.py
from __future__ import unicode_literals
from datetime import datetime
from django.db import models
class Authors(models.Model):
    name = models.CharField(max_length=30, verbose_name=u'作者')
    note = models.CharField(max_length=200, verbose_name=u'简介', default='')
    contact = models.CharField(max_length=30, verbose_name=u'联系方式', default='')
    add_time = models.DateTimeField(default=datetime.now, verbose_name=u'添加时间')
    class Meta:
        verbose_name = u'作者'
        verbose_name_plural = verbose_name  #复数与单数名称相同
    def __unicode__(self):
        return self.name

在后台的效果如下:

xadmin5.png

xadmin 确实是一个强大的插件,文中介绍的只是常用的几个功能,如主题变换,只读字段等都没有在文中一一展开,更多内容详见文档。

参考资料:

xadmin 文档:http://xadmin.readthedocs.io/en/docs-chinese/

xadmin 官网:http://sshwsfc.github.io/xadmin/

上一篇下一篇

猜你喜欢

热点阅读