前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django和xadmin打造后台管理系统(一)-xadmin安装及使用

django和xadmin打造后台管理系统(一)-xadmin安装及使用

作者头像
cpp加油站
发布2021-04-16 14:56:34
1.3K0
发布2021-04-16 14:56:34
举报
文章被收录于专栏:cpp加油站cpp加油站

安装完django,该安装xadmin了,我们都知道django有自己的原生后台admin,但这里我们不用admin,我们用xadmin,因为xadmin的界面更加漂亮。

1.xadmin的安装

首先登陆root用户,安装xadmin:

代码语言:javascript
复制
pip install https://github.com/sshwsfc/xadmin/tarball/master

注意:不能使用pip install xadmin,因为这样安装的xadmin不兼容python3,使用过程中会出现一系列问题,另外安装插件最好是使用root用户,免得出现一系列权限问题。

然后su - pycode,进入到根目录,新建django项目:

代码语言:javascript
复制
django-admin.py startproject  shopping_sites

报错如下: -bash: django-admin.py: command not found

应该是没有添加环境变量引起的,root下使用如下命令添加:

代码语言:javascript
复制
vim /etc/profile

在最后面加入如下命令:

代码语言:javascript
复制
export PATH=$PATH:/usr/local/python3.6.8/lib/python3.6/site-packages/Django-1.11.20-py3.6.egg/django/bin
source /etc/profile

使用命令echo $PATH查看是否生效。

重新su - pycode,进入到根目录,新建django项目:

代码语言:javascript
复制
django-admin.py startproject  shopping_sites

ls可以看到出现了目录shopping_sites,接下来执行如下命令:

代码语言:javascript
复制
cd shopping_sites
cp /usr/local/python3.6.8/lib/python3.6/site-packages/xadmin -r ./

将xadmin复制一份到当前目录下来,方便后期进行个性化修改。

2.将xadmin引入到当前项目

  • 首先修改shopping_sites/shopping_sites/settings.py文件,在文件中添加3行,如下:
代码语言:javascript
复制
INSTALLED_APPS = (
    ...

    'xadmin',
    'crispy_forms',
    'reversion',

    ...
)
  • 还可以修改语言设置:
代码语言:javascript
复制
LANGUAGE_CODE = 'zh-hans' #支持汉语
  • 修改shopping_sites/shopping_sites/urls.py,如下:
代码语言:javascript
复制
from django.conf.urls import url, include
#from django.contrib import admin
from xadmin.plugins import xversion
import xadmin

xversion.register_models()
xadmin.autodiscover()

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

3.新建app

执行下列命令:

代码语言:javascript
复制
python manage.py startapp op_xadmin

成功,可以看到shopping_sites目录下出现了op_xadmin目录。 注意:如果建立app过程中报什么模块找不到,直接pip install XXXX安装即可。

4.数据库安装和使用

我们使用mysql作为数据库,首先要建库:

代码语言:javascript
复制
mysql -uroot -p123456  #超级用户登录

然后新建数据库并赋权限:

代码语言:javascript
复制
CREATE DATABASE shopping DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
grant all on shopping.* to mysql@localhost identified by 'mysql';

使用 show variables like '%character%'; 命令即可看到字符集都已设置为utf8。

接着修改setting.py,如下:

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'shopping',
        'USER':'mysql', 
        'PASSWORD':'mysql', 
        'HOST':'', 
        'PORT':'', 
    }
}

然后执行数据库同步的命令:python manage.py makemigrations,报错: django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'.

看报错信息可以知道是没有安装连接mysql的模块,这里我们使用pymysql,所以pip install pymysql安装。 修改项目目录下__init__.py,加入如下代码:

代码语言:javascript
复制
import pymysql
pymysql.install_as_MySQLdb()

重新执行,不再报错,如下:

5.启动django

然后修改op_xadmin目录下admin.py为adminx.py,内容如下:

代码语言:javascript
复制
from .models import ops
import xadmin

# Register your models here.

class opsAdmin(object):
    list_display = ('op_name')

xadmin.site.register(ops, opsAdmin)

然后我们需要在setting.py中加入如下内容:

代码语言:javascript
复制
ALLOWED_HOSTS = ['192.168.233.250']  #注意要换成自己的linux机器或者虚拟机ip地址

启动服务:

代码语言:javascript
复制
python manage.py runserver 192.168.233.250:9090

本地网页打开: http://192.168.233.250:9090/xadmin/ 如下:

使用命令:python manage.py createsuperuser 创建超级用户。 user:xadmin email:xadmin@szkingdom.com passwd:1qaz!QAZ

重新启动服务,登陆:

点击管理员信息表,一直报错,报错信息如下:

代码语言:javascript
复制
Internal Server Error: /xadmin/op_xadmin/ops/
Traceback (most recent call last):
  File "/usr/local/python3.6.8/lib/python3.6/site-packages/Django-1.11.20-py3.6.egg/django/db/models/options.py", line 617, in get_field
    return self.fields_map[field_name]
KeyError: 'o'

然后各种查找原因没找到,直接修改了字段名,如下:

代码语言:javascript
复制
class ops(models.Model):
    opera_name = models.CharField(max_length=32, unique=True, verbose_name=u"管理员名称") 
    opera_age = models.CharField(max_length=32, default = '23', verbose_name=u"管理员年龄") 

    class Meta:
        db_table = 'ops'
        verbose_name = '管理员信息表'
        verbose_name_plural = '管理员信息表'

    def __str__(self):
        return self.opera_name

更新数据库后,重新启动服务:

可以看到点击管理员信息表不再报错,好了,今天就分享到这里,如果对您有用,可以点个赞,关于xadmin的更多使用,请关注后续文章,谢谢!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 cpp加油站 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.xadmin的安装
  • 2.将xadmin引入到当前项目
  • 3.新建app
  • 4.数据库安装和使用
  • 5.启动django
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档