返回顶部
首页 > 资讯 > 后端开发 > Python >浅谈Python之Django(四)
  • 858
分享到

浅谈Python之Django(四)

2024-04-02 19:04:59 858人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录1.pip3 install xadmin2.解决方案3. 修改配置文件setting.py中的INSTALLED_APPS4.修改urls中的路由5.访问6.设置显示的字段与搜

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"

在这里插入图片描述

在这里插入图片描述

总结

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

--结束END--

本文标题: 浅谈Python之Django(四)

本文链接: https://lsjlt.com/news/155037.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 浅谈Python之Django(四)
    目录1.pip3 install xadmin2.解决方案3. 修改配置文件setting.py中的INSTALLED_APPS4.修改urls中的路由5.访问6.设置显示的字段与搜...
    99+
    2024-04-02
  • 浅谈Python之Django
    目录工具版本创建工程djangostart创建项目message创建一些辅助目录连接数据库(保证自己的数据库已启动)生成数据表总结工具版本 python版本:3.8 djang...
    99+
    2024-04-02
  • 浅谈Python之Django(二)
    目录django设计数据表生成与修改各APP models设计users models 设计course models 设计organization models 设计operati...
    99+
    2024-04-02
  • 浅谈Python之Django(三)
    目录django-admin基本介绍激活django-admin创建访问django-admin的超级用户访问django-admin修改django-admin为中文修改djang...
    99+
    2024-04-02
  • 浅谈python 四种数值类型(int,long,float,complex)
    Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下。 数字数据类型存...
    99+
    2022-06-04
    四种 浅谈 数值
  • 浅谈Python基础之I/O模型
    一、I/O模型 IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。 ...
    99+
    2022-06-04
    浅谈 模型 基础
  • 浅谈python 线程池threadpool之实现
    首先介绍一下自己使用到的名词: 工作线程(worker):创建线程池时,按照指定的线程数量,创建工作线程,等待从任务队列中get任务; 任务(requests):即工作线程处理的任务,任务可能成千上万个,但...
    99+
    2022-06-04
    浅谈 线程 python
  • 浅谈python函数之作用域(python3.5)
    1 基本概念 1.1 命名空间 (namespace) 命名空间是变量名到对象的映射(name -> obj)。目前大多数的命名空间以类似于python字典的形式实现,实现形式在未来可能发生变化。命名...
    99+
    2022-06-05
    浅谈 函数 作用
  • 浅谈django中的认证与登录
    认证登录 django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1 authenticate(**credentials) 提供了用户认证,即验证用户名以及密码是否正确 ...
    99+
    2022-06-04
    浅谈 django
  • 浅谈SpringCloud之Ribbon详解
    目录一、什么是负载均衡二、实现负载均衡的三种方式三、Ribbon简介四、Ribbon的应用五、Ribbon和Feign的区别一、什么是负载均衡 负载均衡:建立在现有网络结构之上,它...
    99+
    2024-04-02
  • 浅谈JAVA并发之ReentrantLock
    目录1. 介绍2. 源码剖析2.1 上锁(获取资源)2.2 释放资源2.3 公平锁与非公平锁的区别1. 介绍 结合上面的ReentrantLock类图,ReentrantLock实...
    99+
    2024-04-02
  • MySQL之浅谈DDL和DML
    目录前言一、DDL1.1 数据库操作1.2 数据表操作1.3 常用数据类型1.4 约束1.5 标识列 二、DML2.1 添加数据2.2 修改数据2.3 删除数据前言         ...
    99+
    2024-04-02
  • 浅谈Python基础之列表那些事儿
    一、列表的格式 二、列表的相关操作("增"、"删"、"改",“查”) <1> 添加元素 append()通过append可以向列表添加元素。 例: 运行结果: <2> 修改元素("改")...
    99+
    2022-06-02
    Python列表操作 python list列表
  • 浅谈Python数学建模之整数规划
    目录一、从线性规划到整数规划1.1、为什么会有整数规划?1.2、四舍五入就能得到整数解吗?二、整数规划的求解方法2.1、分支定界法(Branch and bound)2.2、割平面法(Cutting plane)2....
    99+
    2022-06-02
    Python 数学建模 Python 整数规划
  • 浅谈Python数学建模之数据导入
    目录一、数据导入是所有数模编程的第一步二、在程序中直接向变量赋值2.1、为什么直接赋值?2.2、直接赋值的问题与注意事项三、Pandas 导入数据3.1、Pandas 读取 Excel 文件3.2、Pandas 读取...
    99+
    2022-06-02
    Python 数学建模 Python 数据导入
  • 浅谈Python数学建模之线性规划
    目录一、求解方法、算法和编程方案1.1、线性规划问题的求解方法1.2、线性规划的最快算法1.3、选择适合自己的编程方案二、PuLP库求解线性规划问题2.1、线性规划问题的描述2.2、PuLP 求解线性规划问题的步骤2...
    99+
    2022-06-02
    Python 线性规划
  • 浅谈Python数据类型之间的转换
    Python数据类型之间的转换 函数 描述 int(x [,base]) 将...
    99+
    2022-06-04
    浅谈 数据类型 Python
  • 浅谈MySQL之浅入深出页原理
    目录一、页的概览二、Infimum 和 Supremum三、使用Page Directory四、页的真实面貌4.1、File Header4.2、Page Header4.3、Infimum & Suprem...
    99+
    2022-05-19
    MySQL 页原理
  • 浅谈SQL注入的四种防御方法
    最近了解到安全公司的面试中都问到了很多关于SQL注入的一些原理和注入类型的问题,甚至是SQL注入的防御方法。SQL注入真的算是web漏洞中的元老了,著名且危害性极大。下面这里就简单的分享一下我总结的四...
    99+
    2023-09-05
    php web安全
  • 浅谈一下四则运算和二叉树
    引言 前几天忽然想到了四则运算和二树有没有关系,然后在网络上检索了一下,发现还真的有四则运算和二叉树。 因为总是见到把 四则运算表达式 用 树 的形式来展示,所以就想着给定一颗表达式...
    99+
    2023-05-14
    四则运算 二叉树 四则运算和二叉树
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作