我的编程空间,编程开发者的网络收藏夹
学习永远不晚

浅谈Python之Django(四)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

浅谈Python之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"

在这里插入图片描述

在这里插入图片描述

总结

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

浅谈Python之Django(四)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

浅谈python 四种数值类型(int,long,float,complex)

Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下。 数字数据类型存储数值。他们是不可改变的数据类型,
2022-06-04

浅谈python函数之作用域(python3.5)

1 基本概念 1.1 命名空间 (namespace) 命名空间是变量名到对象的映射(name -> obj)。目前大多数的命名空间以类似于python字典的形式实现,实现形式在未来可能发生变化。命名空间举例:内置变量(内置函数abs, 内
2022-06-05

浅谈Python基础之I/O模型

一、I/O模型 IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。 同步(synchronous) I
2022-06-04

浅谈python 线程池threadpool之实现

首先介绍一下自己使用到的名词: 工作线程(worker):创建线程池时,按照指定的线程数量,创建工作线程,等待从任务队列中get任务; 任务(requests):即工作线程处理的任务,任务可能成千上万个,但是工作线程只有少数。任务通过
2022-06-04

浅谈django中的认证与登录

认证登录 django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1 authenticate(**credentials) 提供了用户认证,即验证用户名以及密码是否正确 一般需要username pas
2022-06-04

浅谈Python基础之列表那些事儿

一、列表的格式二、列表的相关操作("增"、"删"、"改",“查”) <1> 添加元素 append()通过append可以向列表添加元素。 例:运行结果:<2> 修改元素("改") 修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才
2022-06-02

浅谈Python数学建模之数据导入

目录一、数据导入是所有数模编程的第一步二、在程序中直接向变量赋值2.1、为什么直接赋值?2.2、直接赋值的问题与注意事项三、Pandas 导入数据3.1、Pandas 读取 Excel 文件3.2、Pandas 读取 csv 文件3.3、P
2022-06-02

浅谈Python数学建模之线性规划

目录一、求解方法、算法和编程方案1.1、线性规划问题的求解方法1.2、线性规划的最快算法1.3、选择适合自己的编程方案二、PuLP库求解线性规划问题2.1、线性规划问题的描述2.2、PuLP 求解线性规划问题的步骤2.3、Python例程:
2022-06-02

浅谈Python数学建模之整数规划

目录一、从线性规划到整数规划1.1、为什么会有整数规划?1.2、四舍五入就能得到整数解吗?二、整数规划的求解方法2.1、分支定界法(Branch and bound)2.2、割平面法(Cutting plane)2.3、整数规划的编程方案三
2022-06-02

浅谈Python数据类型之间的转换

Python数据类型之间的转换函数描述int(x [,base])将x转换为一个整数long(x [,base] )将x转换为一个长整数float(x)将x转换到一个浮点数complex(real [,imag])创建一个复数str(x)将
2022-06-04

浅谈python迭代器

1、yield,将函数变为 generator (生成器) 例如:斐波那契数列def fib(num):a, b, c = 1, 0, 1    while a <= num:yield cb, c = c, b + ca += 1 for
2022-06-04

浅谈MySQL之浅入深出页原理

目录一、页的概览二、Infimum 和 Supremum三、使用Page Directory四、页的真实面貌4.1、File Header4.2、Page Header4.3、Infimum & Supremum Records4.4、Us
2022-05-19

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录