浅谈Python之Django(四)

 更新时间:2021年10月21日 10:14:00   作者:z-victor  
这篇文章主要介绍了Python3中的Django,小编觉得这篇文章写的还不错,需要的朋友们下面随着小编来一起学习学习吧,希望能够给你带来帮助

1.pip3 install xadmin

因为我是django2.0,直接使用命令一直报错,如下图

在这里插入图片描述

2.解决方案

下载xadmin源包

下载地址:https://github.com/Zjvngvn/xadmin

pip3 install 源码的地址(不用解压) 如:pip3 install
E:\firefoxDownload\xadmin-django2.zip

在这里插入图片描述

3. 修改配置文件setting.py中的INSTALLED_APPS

添加 xadmin
crispy_forms

INSTALLED_APPS = [
‘django.contrib.admin',
‘django.contrib.auth',
‘django.contrib.contenttypes',
‘django.contrib.sessions',
‘django.contrib.messages',
‘django.contrib.staticfiles',
‘users',
‘course',
‘organization',
‘operation',
‘xadmin',
‘crispy_forms'
]

在这里插入图片描述

4.修改urls中的路由

 from django.contrib import admin
from django.urls import path
import xadmin
urlpatterns = [
    # path('admin/', admin.site.urls),
    path('xadmin/', xadmin.site.urls),
]

在这里插入图片描述

5.访问

重启:python manage.py runserver 0.0.0.0:8888
http://127.0.0.1:8888/xadmin

在这里插入图片描述

6.设置显示的字段与搜索的字段

在users App下创建xadmin.py 文件
添加如下代码

import xadmin
from .models import EmailVerifyRecord,Banner
class EmailVerifyRecordAdmin(object):
    # 列表显示的字段
    list_display = ['code','email','send_type','send_time']
    # 搜索字段
    # search_fields = ['code','email']
    # 搜索字段
    list_filter = ['code','email','send_type','send_time']
class BannerAdmin(object):
    # title = models.CharField(max_length=100, verbose_name=u"标题")
    # image = models.ImageField(max_length=100, upload_to="banner/%Y/%m", verbose_name=u"轮播图")
    # url = models.URLField(max_length=100, verbose_name=u"访问地址")
    # index = models.IntegerField(verbose_name=u"顺序", default=100)
    # add_time = models.DateTimeField(default=datetime.now, verbose_name=u"添加时间")
    list_display = ['title', 'url', 'index', 'add_time']
xadmin.site.register(EmailVerifyRecord,EmailVerifyRecordAdmin)
xadmin.site.register(Banner,BannerAdmin)

在course App下创建xadmin.py 文件
添加如下代码

import xadmin
from .models import Course,Lesson,Video,CourseResource
class CourseAdmin(object):
    list_display = ['name', 'desc', 'detail', 'degree','learn_time','students','fav_nums','click_nums']
    # # 搜索字段
    # # search_fields = ['code','email']
    # # 搜索字段
    # list_filter = ['code', 'email', 'send_type', 'send_time']
class LessonAdmin(object):
    list_display = ['course', 'name', 'add_time']
    # 搜索字段
    search_fields = ['course','name','add_time']
    list_filter = 'course','name','add_time'
class VideoAdmin(object):
    list_display = ['lesson', 'name', 'add_time']
class CourseResourceAdmin(object):
    list_display = ['course', 'name', 'download','add_time']
xadmin.site.register(Course,CourseAdmin)
xadmin.site.register(Lesson,LessonAdmin)
xadmin.site.register(Video,VideoAdmin)
xadmin.site.register(CourseResource,CourseResourceAdmin)

在这里插入图片描述

搜索外键课程

搜索外键 外键名称为course 在class Course为name,用__拼接course与name就可以对外键进行搜索了

将course App的class Course中的list_filter改成如下代码:

list_filter = 'course__name','name','add_time'

在这里插入图片描述

添加章节的时候出现了如下问题该怎么解决???

在这里插入图片描述

7.__str __

在course App的models.py的class Course中加上如下代码

def __str__(self):
	return self.name

在这里插入图片描述

__str__是python的object基类的一个方法,也就是说python所有的类都有,当然django的modle类也有,我们平常创建一个类的对象,print这个对象时一般会是<_main.TestClass
object at
0x7f4126578828>,即这个对象的所属类和内存地址,我们改写类中的__str__方法后可以在print时得到想要的易于人阅读的对象的信息

在Django中,如果用的是Python3的话就只能用__str__方法,如果是Python2的话就使用__unicode__方法。因为更安全一些。看看文档

8.全局配置

users App下adminx.py的代码如下:

import xadmin
from .models import EmailVerifyRecord,Banner
from xadmin import views
class BaseSetting(object):
    enable_themes = True
    use_bootswatch = True
class GlobalSettings(object):
    site_title = '慕学后台管理系统'
    site_footer = '慕学在线网'
    menu_style = 'accordion'
class EmailVerifyRecordAdmin(object):
    # 列表显示的字段
    list_display = ['code','email','send_type','send_time']
    # 搜索字段
    # search_fields = ['code','email']
    # 搜索字段
    list_filter = ['code','email','send_type','send_time']
class BannerAdmin(object):
    # title = models.CharField(max_length=100, verbose_name=u"标题")
    # image = models.ImageField(max_length=100, upload_to="banner/%Y/%m", verbose_name=u"轮播图")
    # url = models.URLField(max_length=100, verbose_name=u"访问地址")
    # index = models.IntegerField(verbose_name=u"顺序", default=100)
    # add_time = models.DateTimeField(default=datetime.now, verbose_name=u"添加时间")
    list_display = ['title', 'url', 'index', 'add_time']
xadmin.site.register(EmailVerifyRecord,EmailVerifyRecordAdmin)
xadmin.site.register(Banner,BannerAdmin)
xadmin.site.register(views.BaseAdminView,BaseSetting)
xadmin.site.register(views.CommAdminView,GlobalSettings)

让后台可以显示多种样式

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

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

修改后台名称

在这里插入图片描述

添加如下代码:

class GlobalSettings(object):
    site_title = '慕学后台管理系统'
 xadmin.site.register(views.CommAdminView,GlobalSettings)

修改页脚

在这里插入图片描述

class GlobalSettings(object):
    site_footer = '慕学在线网'

在这里插入图片描述

修改菜单显示样式

在这里插入图片描述

class GlobalSettings(object):
    menu_style = 'accordion'

在这里插入图片描述

将英文菜单设置为中文菜单

在这里插入图片描述

修改users App下的apps.py文件为如下代码:

class UsersConfig(AppConfig):
    name = 'users'
    verbose_name = u'用户信息'

在这里插入图片描述

修改users App下的__init__.py文件为如下代码:

default_app_config = "users.apps.UsersConfig"

在这里插入图片描述

在这里插入图片描述

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • Python编程基础之类和对象

    Python编程基础之类和对象

    这篇文章主要为大家详细介绍了Python的类和对象,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • 五分钟学会怎么用Pygame做一个简单的贪吃蛇

    五分钟学会怎么用Pygame做一个简单的贪吃蛇

    这篇文章主要介绍了五分钟学会怎么用Pygame做一个简单的贪吃蛇,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01
  • Python实现Linux命令xxd -i功能

    Python实现Linux命令xxd -i功能

    这篇文章主要介绍了Python实现Linux命令xxd -i功能的相关资料,需要的朋友可以参考下
    2016-03-03
  • python实现会员信息管理系统(List)

    python实现会员信息管理系统(List)

    这篇文章主要为大家详细介绍了python实现会员信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Pandas之使用drop_duplicates:去除重复项

    Pandas之使用drop_duplicates:去除重复项

    这篇文章主要介绍了Pandas之使用drop_duplicates:去除重复项方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 使用 Python 实现文件递归遍历的三种方式

    使用 Python 实现文件递归遍历的三种方式

    这篇文章主要介绍了使用 Python 实现文件递归遍历的三种方式,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-07-07
  • python标准库 datetime的astimezone设置时区遇到的坑及解决

    python标准库 datetime的astimezone设置时区遇到的坑及解决

    这篇文章主要介绍了python标准库 datetime的astimezone设置时区遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • pygame实现弹球游戏流程

    pygame实现弹球游戏流程

    这篇文章主要介绍了pygame实现弹球游戏流程,弹球游戏(Pinball Pro)是安卓手机上排名第一的弹球游戏,真实再现了一直以来最经典的弹珠台游戏的玩法
    2023-01-01
  • Python深度学习实战PyQt5安装与环境配置过程详解

    Python深度学习实战PyQt5安装与环境配置过程详解

    本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战。什么叫从零开始?从软件安装、环境配置开始。不跳过一个细节,不漏掉一行代码,不省略一个例图
    2021-10-10
  • SVM基本概念及Python实现代码

    SVM基本概念及Python实现代码

    这篇文章主要为大家详细介绍了SVM基本概念及Python实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12

最新评论