python框架Django管理后台Xadmin设置

原创 2018年04月16日 20:05:17

 python 下面的框架比较多,感兴趣的可以了解下,今天我给大家带来,python django 下用Xadmin来管理django的强大后台!

python安装方法,请移步!

  1. 如何将django模块注册到xadmin后台
  2. 如何重新定义xadmin 样式css,font
  3. 如果将新的user模块注册到已有的user中
  4. Dependency on app with no migrations解决办法
  5. Related model cannot be resolved 的解决办法
  6. static的设置方法

今天给大家带来django下xadmin的安装方法!

第一:首先命令安装django

#pip命令
pip install django
#pip3.6命令
pip3.6 install django
Python

第二:命令安装xadmin

pip install xadmin
#pip3.6 命令
pip3.6 install xadmin
Python

第三:setting.py中设置 INSTALLED_APPS

INSTALLED_APPS = (
    ...
    'xadmin',
    'crispy_forms',
    'reversion',
    ...
)
Python

第四:setting.py中设置中文

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-Hans'
# TIME_ZONE = 'UTC'
TIME_ZONE = 'CCT'
USE_I18N = True
USE_L10N = True
USE_TZ = True
Python

第五:urls.py中设置 

import xadmin
xadmin.autodiscover()
from xadmin.plugins import xversion
xversion.register_models()
urlpatterns = [
    path(r'',xadmin.site.urls),
   # path('admin/',admin.site.urls),
]
Python

 第五:数据库同步,命令行下输入

#数据库同步命令
pyhton manage.py migrate
#then
python manage.py makemigrations
#end
python manage.py migrate
Python

第六:运行命令打开测试端口

打开端口测试命令:

python manage.py runserver
#or  修改端口
pyhton manage.py runserver 8888
#or IP加端口
python manage.py runserver 0.0.0.0:8888
Python

如果提示port被占用可以用如下命令杀死:

sudo fuser -k 8000/tcp
Python

MAC 下打开 http://0.0.0.0:8888  其他环境 http://127.0.0.1:8888

打开首页如下为样式:

 

如何将django模块注册到xadmin后台      回到顶部

 第一:将app注册到xadmin 

  1. 在models.py中创建新的表单 EmailVerifyRecord
    class EmailVerifyRecord(models.Model):
        email_choices = (
            ('register', u'注册'),
            ('forget', u'找回密码'),
        )
        code = models.CharField(max_length=20, verbose_name=u'验证码')
        email = models.EmailField(max_length=50, verbose_name=u'邮箱')
        send_type = models.CharField(choices=email_choices, max_length=10, verbose_name=u'验证码类型')
        send_time = models.DateTimeField(default=datetime.now, verbose_name=u'发送时间')
    Python
  2. app中新建adminx.py文件
    import xadmin
    from .models import EmailVerifyRecord
     
    class EmailVerifyRecordAdmin(object):
        list_display = ['code', 'email', 'send_type', 'send_time']
        search_fields = ['code', 'email', 'send_type']
        list_filter = ['code', 'email', 'send_type', 'send_time']
     
    xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)
    Python
  3. 有十几种主题应用可供选择

第二:设置admix.py,在前面新建的adminx.py中添加如下代码 

from xadmin import views
 
class BaseSetting(object):
    enable_themes = True
    use_bootswatch = True
 
xadmin.site.register(views.BaseAdminView, BaseSetting)
Python

第三:全局设置重定义后台的logo文本和底部的@

在adminx.py中添加

from xadmin import views
 
class GlobalSetting(object):
    site_title = "润格后台管理系统"
    site_footer = "http://www.runge.net/"
 
xadmin.site.register(views.CommAdminView, GlobalSetting)
Python

第四:app左侧的列表紧缩 间隔

在上面的 adminx.py 中的site_footer 下面添加

menu_style = "accordion"
Python

即可!

apps.py

一:增加如下代码:

from django.apps import AppConfig
 
 
class UsersConfig(AppConfig):
    name = 'user'
    verbose_name = '用户管理'
Python

二:__init__.py文件添加代码:

default_app_config = "user.apps.UsersConfig"
Python

第五:设置表名操作为中文

打开models.py

在要表的字段下面添加

class Mata:
    db_table='user_info' #表名
    verbose_name ='用户信息列表'
    verbose_name_plural='用户信息表管理'
Python

完整的models.py代码:

from django.db import models
from _datetime import datetime

# Create your models here.
class UserInfo(models.Model):
    username = models.CharField(max_length=10)
    password = models.CharField(max_length=20)
    true_name = models.CharField(max_length=10)
    phone = models.IntegerField()
    create_time =models.DateTimeField()
    class Mata:
        db_table ='user_info'
        verbose_name ='用户信息'
        verbose_name_plural ='用户信息管理'
#注册表
class EmailVerifyRecord(models.Model):
    email_choices = (
        ('register', u'注册'),
        ('forget', u'找回密码'),
    )
    code = models.CharField(max_length=20, verbose_name=u'验证码')
    email = models.EmailField(max_length=50,unique=True, verbose_name=u'邮箱')
    send_type = models.CharField(choices=email_choices, max_length=10, verbose_name=u'验证码类型')
    send_time = models.DateTimeField(default=datetime.now, verbose_name=u'发送时间')
    class Meta:
        verbose_name ='用户邮箱表'
        verbose_name_plural ='用户邮箱管理'
Python

如何引入自定义的ico 案例

第一:font awesome自定义

官网下载:http://fontawesome.io/

下载后覆盖css、fonts目录

在adminx.py文件中引入model_icon

class EmailVerifyRecordAdmin(object):
    list_display = ['code', 'email', 'send_type', 'send_time']
    search_fields = ['code', 'email', 'send_type']
    list_filter = ['code', 'email', 'send_type', 'send_time']
    model_icon = 'fa fa-address-book-o'
xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)
Python

model_icon这个值,在http://fontawesome.io/icons/ 中选中的图标或class内容,如下图

第二:引用自定义的用户信息

这里应用的是源码安装 xadmin

下载:https://github.com/sshwsfc/xadmin

解压xadmin-master.zip文件

将xadmin-master文件中xadmin目录复制到自己的django项目下

在如上图的路径中添加代码

from django.contrib.auth import get_user_model
User = get_user_model()
Python

如何把新建的user应用添加到已有的user中

为了便于管理和拓展我们将新建的user和原来的对接方法如下:

第一:在models.py中引入模型类

from django.db inport models
from django.contrib.auth.models import User  ##导入admin User
Python

加入下面的命令:

class UserProfile(AbstractUser):
    nick_name = models.CharField(max_length=50, verbose_name=u"昵称", default="")
    birthday = models.DateField(verbose_name="生日", null=True, blank=True)
    gender = models.CharField(max_length=6, choices=(("male", "男"), ("female", "女")), default='female')
    address = models.CharField(max_length=100, default="")
    mobile = models.CharField(max_length=11, null=True, blank=True)
    image = models.ImageField(upload_to="image/%Y/%m", default="image/default.png", max_length=100)

    class Mata:
        verbose_name = "用户信息"
        verbose_name_plural =verbose_name
        def __unicode__(self):
            return self.username
Python

第二:在setting.py中重载

AUTH_USER_MODEL = "users.UserProfile"
Python

Dependency on app with no migrations 的解决办法

#运行命令
pyhton3.6 manage.py makemigrations
#即可
Python

Related model cannot be resolved 的解决办法

删除app 目录下的migrations 目录下的文件 解决

static 设置

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

九、[正式]user app及数据库设计

app种类 users:用户管理 course:课程管理 organization:机构和教师管理 operation:用户操作管理 这里采用的是一种分层的设计理念,即operat...
  • sinat_35930259
  • sinat_35930259
  • 2018-03-10 17:31:22
  • 97

django no such table: django_session 错误解决

这是因为一开始没有把 'django.contrib.admin' 这一句INSTALLED_APPS里,而且执行了    python manage.py syncdb  而导致的数据表错误...
  • cyrabbit
  • cyrabbit
  • 2012-05-27 23:16:38
  • 12835

django Exception Value:no such table: cmdb_XXX

django Exception Value:no such table: cmdb_XXX 各个地方都查了,代码没问题,就是有一直报错,最后参考stackflow解决,方案如下: python ...
  • appleyuchi
  • appleyuchi
  • 2017-12-13 15:29:38
  • 125

Django+Vue 框架踩坑构建【不涉及部署部分】

转自知乎  https://zhuanlan.zhihu.com/p/24893786 1. 创建Django项目 命令: django-admin startproject ulb...
  • github_36616911
  • github_36616911
  • 2017-07-25 00:40:17
  • 570

Django 安装Xadmin后台管理

1、安装python2.7  下载网址:https://www.python.org/downloads/ 2、安装django 通过pip 工具去安装 pip install django==1.8...
  • zlzdj
  • zlzdj
  • 2017-02-22 21:13:24
  • 1182

Django-xadmin后台管理系统

xadmin 主要功能:后台显示数据库数据,根据数据类型可以自动生成操作方法 原理:从数据库读取数据的 是数据库驱动型站点 使用: 1.拷贝文件到extra_...
  • Jamin2018
  • Jamin2018
  • 2017-12-31 17:09:28
  • 619

Pycharm+Django+Python+MySQL开发(一)后台管理数据库

Django搭建后台管理系统,对接数据库
  • zez11
  • zez11
  • 2016-08-19 18:51:53
  • 10473

Django1.5新功能预告

转自:http://www.web4py.com/blog/%E8%AF%91-django-15-%E6%96%B0%E5%8A%9F%E8%83%BD%E9%A2%84%E5%91%8A/ ...
  • shanliangliuxing
  • shanliangliuxing
  • 2013-07-25 11:51:14
  • 835

django-xadmin 非常方便的后台管理程序

django有着自己非常强大的各种组件.同样也有很多专门为大家啊
  • qiya2007
  • qiya2007
  • 2014-08-23 23:42:08
  • 2181

django1.8使用django-xadmin管理后台

django1.8使用django-admin管理后台 1.需要安装的包 # django-xadmin-1.8.zip  https://github.com/sshwsfc/xadmin/tree...
  • goupper1991
  • goupper1991
  • 2016-09-26 17:59:19
  • 4568
收藏助手
不良信息举报
您举报文章:python框架Django管理后台Xadmin设置
举报原因:
原因补充:

(最多只允许输入30个字)