前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过xadmin或者suit-v2快速搭建后台管理系统

通过xadmin或者suit-v2快速搭建后台管理系统

作者头像
晓歌
发布2018-08-15 15:05:47
7680
发布2018-08-15 15:05:47
举报
文章被收录于专栏:破晓之歌破晓之歌

一、xadmin安装和注册使用

代码语言:javascript
复制
pip install xadmin#pip升级后这种安装就报错
python -m pip install xadmin

用第二行的安装依旧报错

于是,只能百度了,依靠github上的下载包安装

参考解决方法:https://blog.csdn.net/qingche456/article/details/58279692

git地址:https://github.com/sshwsfc/xadmin

1.安装xadmin

管理员身份进入xadmin-master所在位置

代码语言:javascript
复制
python setup.py install

安装成功

2.将xadmin注册到settings中

代码语言:javascript
复制
    'xadmin',
    'crispy_forms',

3.修改项目的urls.py,替换默认的admin

代码语言:javascript
复制
import xadmin
urlpatterns = [
    url(r'^xadmin/', xadmin.site.urls),
]

4.设置pycharm文件模板

5.在每个app中新建adminx.py文件,在此处注册app的model 

  • list_display 展示
  • search_fields 搜索
  • list_filter 过滤

6.添加部分接口

在项目初始化的__init.py__文件中增加

代码语言:javascript
复制
default_app_config = 'star.app.UsersConfig'

在model.py文件中增加引入

代码语言:javascript
复制
from django.contrib import admin

在APP下的adminx.py中增加引入和注册(以下为imgs_db的APP示例)

代码语言:javascript
复制
#-*- coding:utf-8 -*-

import xadmin
from xadmin import views
from xadmin.plugins.auth import UserAdmin
from xadmin.layout import Fieldset, Main, Side, Row
from django.utils.translation import ugettext as _

from imgs_db.models import Imgs,Imgs_name



class UserProfileAdmin(UserAdmin):
    def get_form_layout(self):
        if self.org_obj:
            self.form_layout = (
                Main(
                    Fieldset('',
                             'username', 'password',
                             css_class='unsort no_title'
                             ),
                    Fieldset(_('Personal info'),
                             Row('first_name', 'last_name'),
                             'email'
                             ),
                    Fieldset(_('Permissions'),
                             'groups', 'user_permissions'
                             ),
                    Fieldset(_('Important dates'),
                             'last_login', 'date_joined'
                             ),
                ),
                Side(
                    Fieldset(_('Status'),
                             'is_active', 'is_staff', 'is_superuser',
                             ),
                )
            )
        return super(UserAdmin, self).get_form_layout()

class BaseSetting(object):
    enable_themes = True
    use_bootswatch = True

class GlobalSettings(object):
    site_title = "项目后台管理系统"
    site_footer = "star之星"
    # menu_style = "accordion"

class test_img_up(object):
    list_display = ('id','name')
xadmin.site.register(Imgs_name, test_img_up)

class img_up(object):
    list_display = ['id','img','single']
    filter_horizontal = ['imgs',]
xadmin.site.register(Imgs, img_up)

xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(views.CommAdminView, GlobalSettings)

运行

报错,没有模型‘odf’

安装方式有问题,依赖缺少

执行安装:

代码语言:javascript
复制
pip install -r requirements.txt

安装成功

——————————————————————————————

如果是先升級django到2.0+版本的

还是找不到启动程序

寻找pip.exe和python.exe所在路径,设置到环境变量中去

代码语言:javascript
复制
C:\Program Files\Anaconda3\Scripts\pip.exe
C:\Program Files\Anaconda3\python.exe

这种方法依旧报错,试着python可以运行,应该只是pip升级到10版本后就会有这种报错

最终解决方法:到pip的安装包目录下删除包文件和启动文件,在pip官网重新下载安装

pip地址:https://pypi.org/project/pip/#files

方法:解压安装文件,以管理员方式cmd到该文件夹下

代码语言:javascript
复制
python setup.py install

成功安装可执行pip操作

———————————————————————————————

报错,网友的解决办法是把django-formtools从1.0升级到2.0

代码语言:javascript
复制
django-formtools==2.0#txt文本里写,然后执行安装依赖

以下为txt文本内容

代码语言:javascript
复制
django-formtools==2.0

run,可以访问

代码语言:javascript
复制
python manage.py migrate
python manage.py makemigrations
python manage.py migrate

注意:一定要再次初始化,不然访问报错

页面已经可以访问:http://127.0.0.1:8222/xadmin/,感觉速度会变慢很多

后台主题可以更换

之前做的app数据也有调进来,ok

7.其他-admin.py,xadmin.py的中文修改

7.1显示中文model名称

model.py

代码语言:javascript
复制
class BookReviewWeibo(Weibo, BookReview):    
        
    class Meta:
        verbose_name = '微读书'
        verbose_name_plural = '微读书'
设置verbose_name和verbose_name_plural后,admin中显示自定义的model名
设置verbose_name和verbose_name_plural后,admin中显示自定义的model名

通过建立模型使用Model类的内部类Meta

有两个特殊的选项:verbose_name和verbose_name_plural。顾名思义,verbose_name为model提供了一个更容易让人阅读的名称,而verbose_name_pluralze则是这个名称的复数形式。一般情况下,我会使用一个中文的verbose_name,由于中文不区分单复数,因此通常会将同一个中文字符串赋值给verbose_name和verbose_name_plural。

————————————————————————————————————————————

但是,django2.0的部分语法有改变

原先下载的xadmin-master不能使用,请下载:

https://github.com/sshwsfc/xadmin/tree/django2

此版本适合django2

————————————————————————————————————————————

7.2 xadmin.py导出的csv(xml,excel)或者json有乱码

主要是encode问题,需要把utf-8改成gbk

8.修改xadmin的图标

参考文档:https://www.cnblogs.com/adc8868/p/7506973.html

另一种美化思路:

二、使用suit-v2美化Django Admin(兼容Django新版本!)

安装使用方法:https://zhuanlan.zhihu.com/p/26876869

还未实验,看介绍不错

三、django使用bootstrap快速美化 admin后台(要求django版本小于1.9)

1、安装应用

代码语言:javascript
复制
python -m pip install django-admin-bootstrapped  

安装成功,django也被迫升级到1.11.5版本

打开以前的某个应用可能会发现报错

第一个错:admin.py里面

代码语言:javascript
复制
filter_horizontal = ('imgs',)

应该是一个多对多的,注释了

第二个错:setting.py里面增加中间件单独的类

代码语言:javascript
复制
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',

    # THIS MIDDLEWARE
    'myapp.middleware.shortcircuit.ShortCircuitMiddleware',

    # SOME OTHER MIDDLE WARE YOU WANT TO SKIP SOMETIMES
    'myapp.middleware.package.MostOfTheTimeMiddleware',

    # MORE MIDDLEWARE YOU WANT TO SKIP SOMETIMES HERE
)

不再报错

运行后依旧报错ImportError: No module named 'myapp'

2.setting.py里面添加

代码语言:javascript
复制
INSTALLED_APPS = (
    'django_admin_bootstrapped',
    'django.contrib.admin',

    ...
)

注意:

参考文档:

1.通过xadmin快速搭建后台管理:https://blog.csdn.net/wwwdc1012/article/details/72814642

2.神级程序员:最火Django+最强Xadmin打造一款平台!企业级项目:http://baijiahao.baidu.com/s?id=1589834449796360029&wfr=spider&for=pc

3.django使用bootstrap快速美化 admin后台:https://www.cnblogs.com/hb91/p/5424290.html

——————————————————————————————————

其他不知为嘛报错的:

1.run时候不保存,访问后台页面就报错,django.db.utils.ProgrammingError: (1146, "Table 'star.django_session' doesn't exist")

解决方法:

代码语言:javascript
复制
python manage.py migrate --fake-initial

之后会增加一些表

再次访问就可以啦!

参考文档:

1.Django:如何admin管理界面中显示中文model名称:http://www.nanerbang.com/article/33/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、xadmin安装和注册使用
    • 1.安装xadmin
      • 2.将xadmin注册到settings中
        • 3.修改项目的urls.py,替换默认的admin
          • 4.设置pycharm文件模板
            • 5.在每个app中新建adminx.py文件,在此处注册app的model 
              • 6.添加部分接口
                • 7.其他-admin.py,xadmin.py的中文修改
                  • 7.1显示中文model名称
                    • 7.2 xadmin.py导出的csv(xml,excel)或者json有乱码
                      • 8.修改xadmin的图标
                      • 二、使用suit-v2美化Django Admin(兼容Django新版本!)
                      • 三、django使用bootstrap快速美化 admin后台(要求django版本小于1.9)
                        • 1、安装应用
                          • 2.setting.py里面添加
                          • 参考文档:
                          • 参考文档:
                          相关产品与服务
                          消息队列 TDMQ
                          消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档