百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

第37章 Django集成高颜值UI,美...

suiw9 2025-01-21 21:24 20 浏览 0 评论

能坚持到这的朋友,恭喜你,终于有幸可以见到Django最激动人心、最撩人心的一面了。为了凑数字,废话说过太多了,这次就直奔主题吧。

37.1 创建工程并进行配置

用PyCharm、Eclipse开发工具创建系统:sales。

1. 调整语言和时区,修改settings.py文件

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

2. 调整系统标题,修改url.py文件

from django.contrib import admin
from django.urls import path

admin.site.site_title = '销售管理系统'
admin.site.site_header = '销售管理系统'

urlpatterns = [
    path('', admin.site.urls),
]

3. 生成model对应的数据表(Django自带的后台管理系统admin)

python3 manage.py migrate
  1. 创建管理员默认账号:admin,密码:123456
python3 manage.py createsuperuser

37.2 选择Django UI框架

为了解决Django后台系统颜值的问题,众多程序猿,脑洞大开,浑身解数,不断探索,好在终有所成。

据我不完全了解到的,就有xadmin、Django jet和django-simpleui。如果单从颜值上来说的话, xadmin比后两者略逊一筹,加上它现在已经停止更新了,咱就不选用它了。

Django jet和django-simpleui颜值大同小异,差不多。可django-simpleui更贴近国人的操作习惯,所以最终选择用它。

到https://github.com/newpanjing/simpleui下载源代码。解压缩后,把文件夹里的simpleui,拷贝到sales下。

simpleui利用同模板名称和静态文件优选选择(找到就不在寻找)的原理,在不更改Django源代码的基准上,替换后台系统admin的UI风格和布局。它是居于element UI进行改造的。权限内容,用自定义标签和过滤器进行了调整,国际化则采用js进行实现。

37.3 集成UI框架

在settings.py文件中的INSTALLED_APPS加上simpleui,这样就算集成进去了,简单得不要不要的。

INSTALLED_APPS = [
    'simpleui',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

在settings.py文件中的STATIC_URL下面(文件尾部),添加以下参数。

# 配置静态文件路径
STATIC_ROOT = os.path.join(BASE_DIR, "static")

# 不让simpleui 不要收集相关信息
SIMPLEUI_ANALYSIS = False

# js采用离线的,默认为联网的
SIMPLEUI_STATIC_OFFLINE = True

如果你对收集数据实在太敏感的话,可以到唯一一个Python源代码文件(自定义标签用)simpletags.py和simpleui/templates/admin/index.html模板文件下删除收集数据相关的代码和标签。

37.4 UI框架内容调整

框架集成好之后,运行工程看看效果。你会发现登录窗口上的logo不是你的。管理窗口上的改变字体(功能)图标不是你想要的,home图标(功能)也不是你想要的话…,就对它们进行一顿修理。

1. 替换logo

自行制作一张大小为383*383px的png图标,覆盖掉static/admin/simpleui-x/img下的logo.png文件。

2. 去掉图标

去掉管理窗口的字体、最大化和home图标,在templates/admin/index.html文件里,注释掉以下代码。

{# <el-button icon="fas fa-font" circle v-waves @click="fontClick()"></el-button> #}
{# <el-button  :icon="this.zoom?'fas fa-compress-arrows-alt':'fas fa-expand
-arrows-alt'" @click="goZoom()" circle></el-button>#}
{# <el-button icon="fas fa-home" @click="goIndex('{{ 'SIMPLEUI_INDEX' |
get_config }}')" circle v-waves></el-button>#}

3. 改变文字

改管理窗口中的“选择主题”为“主题”,在static/admin/simpleui-x/locale/zh-hans.js文件里进行修改。

"Change theme": "主题",

37.5 积小成大

犹如唐僧去西天取经,经过九九八十一难,终于取得真经,迎娶白富美。高颜值的UI,令人心情愉快,久久不能忘怀。

如果自我感觉良好的话,那就举起大拇哥,为自己点个赞吧。

赞后,仔细核对一下内容,看看自己的logo设计了没?瞧瞧去掉字体图标了没?想想为什么去掉最大化图标?为什么去掉home图标?

然后,然后...,就没有然后了。

注销系统,回到登录窗口时,是不是总感觉少了点什么?没错,少了验证码。没有这个拦截机器人盗刷的家伙,你我怎能安心?

走,集成验证码去。

相关推荐

你要如何学习写一个数据库内核(如何实现一个最简单的数据库)

数据库这个方向上还有许多细分方向,每个细分方向上都有许多知识。...

每个大数据架构师都需要的6个基本技能

为了成为一名出色的大数据架构师,首先必须成为一名数据架构师,但这两种角色的职责各有不同。数据分为结构化和非结构化两种。尽管大数据为各种规模的组织提供了许多洞察和分析的机会,但处理起来非常困难,并且需...

警惕!Spring Data MongoDB SpEL表达式注入漏洞风险通告

漏洞描述近日,亚信安全CERT监控到SpringDataMongoDB存在表达式注入漏洞(CVE-2022-22980),该漏洞源于SpringDataMongoDB应用程序在使用带有SpEL...

既然有MySQL了,为什么还要有MongoDB?

大家好,我是哪吒,最近项目在使用MongoDB作为图片和文档的存储数据库,为啥不直接存MySQL里,还要搭个MongoDB集群,麻不麻烦?...

分布式系统核心概念及实现(分布式核心原理解析)

一、分布式系统核心概念1.分布式系统的定义分布式系统是由多个独立的计算机(节点)通过网络连接,协同完成任务的系统。这些节点可以是物理机、虚拟机或容器。...

nosql之mongodb(nosql数据库是国产的吗)

什么是MongoDB?MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。...

如何治理非结构化数据?(非结构化化数据)

据调查,当前企业80%的数据为非结构化数据或半结构化数据,而结构化数据是他们管理的重点,非结构化数据却被忽视。然而,非结构化数据也有着它的价值。那么,如何治理非结构化数据?IDC调研显示,目前企业中8...

Cloudera收购大数据加密初创企业Gazzang

Hadoop供应商Cloudera刚刚收购了专门研究下一代数据存储环境加密技术技术的初创企业Gazzang,但交易细节并未透露。这是Cloudera的第一笔重大收购。Gazzang成立于20...

全网最全95道MongoDB面试题1万字详细解析

1、mongodb是什么?MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB旨在给WEB应...

mongodb——视图(mongodb object)

MongoDB视图是一个可查询的对象,其内容由其他集合或视图上的聚合管道定义。MongoDB不会将视图内容持久化到磁盘。当客户端查询视图时,MongoDB可以要求客户端拥有查询视图的权限。MongoD...

mongodb的优缺点及应用场景(mongodb 优点 应用场景)

一、MongoDB是什么1、维基百科MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。...

5款Syslog集中系统日志常用工具对比推荐

一、为何要集中管理Syslog?Syslog由Linux/Unix系统及其他网络设备生成,广泛分布于整个网络。因其包含关键信息,可用于识别网络中的恶意活动,所以必须对其进行持续监控。将Sys...

跨平台、多数据库支持的开源数据库管理工具——DBeaver

简介今天给大家推荐一个开源的数据库管理工具——DBeaver。它支持多种数据库系统,包括Mysql、Oracle、PostgreSQL、SLQLite、SQLServer等。DBeaver的界面友好...

强烈推荐!数据库管理工具:Navicat Premium 16.3.2 (64位)

NavicatPremium,一款集数据迁移、数据库管理、SQL/查询编辑、智能设计、高效协作于一体的全能数据库开发工具。无论你是MySQL、MariaDB、MongoDB、SQLServer、O...

3 年 Java 程序员还玩不转 MongoDB,网友:失望

一、什么场景使用MongoDB?...

取消回复欢迎 发表评论: