Windows 10 - Django + simpleui项目实战 - 详细总结 导入导出-权限修改-修改登录界面-数据库优化-js触发事件失效奇葩问题

news2025/1/9 14:51:00

目录

  • 对django框架的内置功能的修改
    • 导入导出模块
    • 超级用户权限修改了解
    • 修改登录界面方法
    • 安装mysqlclient 性能优化,比pymysql模块更好
      • 报错 django.db.utils.OperationalError: (2026, 'SSL connection error: unknown error number')
  • 静态文件管理
  • js问题 - onchange 和 onclick 等等以及其他的触发失效奇葩 bug
  • 参考链接

测试环境:

Windows 10
Anaconda 3
python 3.7
django-simpleui 2022.7.29
django-import-export 2.8.0
mysqlclient cp37 64 whl
mysqlclient 1.4.6

对django框架的内置功能的修改

导入导出模块

在这里插入图片描述
创建导入导出接口文件 resource.py,内容如下

from import_export import resources
from .models import Test


class TestResource(resources.ModelResource):
    """
        导入导出接口配置文件
    """
    # 此处可写方法以添加更多功能
    class Meta:
        model = Test
        # fields内的模型字段会被导入导出, exclude内的会被排除在外,如果都不写,默认为模型中的全部字段都要包含。
        # fields=[
        #     'job_num',
        #     'head_class',
        #     'name',
        #     'employ_src',
        #     'gender',
        #     'id_card_num',
        # ]
        # excloud = (
        #     'first_diploma',
        #     'home_address',
        #     'honor_award',
        # )
        # export_order(自定义) 选项设置导出字段的显式顺序,没在这里规定的就按默认顺序排在后面(不能只写一个)(导入不用管顺序)
        export_order = ('id', 'name')
        # 下面规定联合主键,决定是update还是create,可以避免重复导入相同的记录
        # import_id_fields = ['phone', 'id_card_num']

使用方法如下:在想要实现导入导出的app内的admin.py文件内使用该接口文件
在这里插入图片描述
举例内容如下:

from django.contrib import admin
from datadisplay.models import Test
# 取一个插件内的管理器
from import_export.admin import ImportExportModelAdmin
# 导入刚刚写好的Resource 导出接口文件
from .resource import TestResource

# Register your models here.
# 重写一个管理类,并绑定到模型类

class TestAdmin(ImportExportModelAdmin):
        # 对接资源类
        resource_class = TestResource   # 导入导出接口
        list_display = ['name', 'age']

admin.site.register(Test,TestAdmin)

效果如下:
在这里插入图片描述

Django学习(10)后台批量导入导出import-export

超级用户权限修改了解

无论怎么都不可能使用权限分组的方法,让一个超级用户使用不了其他用户组的权限功能,所以这样子就会看起来很奇怪,比如一个公司里有财务部,销售部,技术部,那么超级用户就可以用到财务部、销售部、技术部的功能模块,所以看起来超级用户的后台管理界面就很奇怪。

修改登录界面方法

simpleui 的 admin.py 文件内的修改

admin.site.site_header = '***系统'  # 设置登录界面header
admin.site.site_title = '***系统'          # 设置浏览器的 title

在这里插入图片描述

安装mysqlclient 性能优化,比pymysql模块更好

推荐原因:

pymysql:
纯python语言编写,速度比mysql-connector快,在调用pymysql.install_as_MySQLdb()后,几乎完全兼容MySQLdb
mysqlclient:
django 框架推荐连接库,基于C编写,速度快,是MySQLdb的一个fork,最兼容MySQLdb

数据量大用MySQLdb(mysqlclient),数据量小(1w行以下)用pymysql

问题描述:项目后台API响应过慢,将近7s,严重影响体验
在这里插入图片描述
嗯…18W数据也不多,两者执行时间却相差8倍有余。

windows安装方法:(请看链接下载)
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

这里我用的python版本为 3.7,所以选择 cp37的64位的 whl 文件,想必现在32位的电脑应该很少了吧。
在这里插入图片描述
点击链接下载 .whl 文件

下载完成后,复制whl 文件的绝对路径,使用 pip install 命令 (将含有绝对路径的whl文件复制)
在这里插入图片描述
在这里插入图片描述

报错 django.db.utils.OperationalError: (2026, ‘SSL connection error: unknown error number’)

解决链接:
解决Windows下django.db.utils.OperationalError: (2026, ‘SSL connection error: unknown error number‘)问题

my.ini 文件内容如下:添加

[mysqld]
skip_ssl  # 忽略ssl

完整内容如下:

[mysql]

# 设置mysql客户端默认字符集
default-character-set=utf8 

# 路径:C:\ProgramData\MySQL\MySQL Server 8.0
[mysqld]
skip_ssl  # 忽略ssl

[mysqld]

#设置3306端口
port = 3306 

# 设置mysql的安装目录
basedir=D:\YHX\Programs\Database\mysql-8.0.30-winx64

# 设置mysql数据库的数据的存放目录
datadir=D:\YHX\Programs\Database\mysql-8.0.30-winx64\data

# 允许最大连接数
max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

重启服务,没法用net stop mysql / net start mysql 命令
只能使用计算机管理 - 服务和应用程序 - 服务- MySQL - 右键点击重启服务

静态文件管理

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "common_static")
]
STATIC_ROOT = os.path.join(BASE_DIR, "static"")  

特别注意:
STATICFILES_DIRS 配置,相当于 settings.py文件内 DEBUG=True 时的 默认静态路径,也就是说,如果你是在开发环境下,即配置是 DEBUG=True ,那么你就要小心了,Django 特别讲究,在测试环境下时,就默认把测试环境下的静态文件都放在 STATICFILES_DIRS 路径下,在生产环境下,即 settings.py 文件内的 DEBUG=False ,那么你就要注意了,本来在 STATICFILES_DIRS 路径下的所有的静态文件,都应该放到 STATIC_ROOT 路径下,这里生产环境默认的静态文件路径,所以呢,Django 框架极为讲究,静态文件的路径分为测试版的和生产版的两种模式,所以特别要记住的一点是,collectstatic 命令,如果是要系统上线了,那么就要注意的一点是,使用这个 collectstatic 命令,将所有的在测试版的静态文件都拉到 STATIC_ROOT 这个生产环境的默认静态文件路径,这样就后面就不会奇怪,为什么我的静态文件都不见了之类的,笔者就是碰到了,对这 Django 的静态文件配置理解不深。


回头补充:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static")
]
STATIC_ROOT = os.path.join(BASE_DIR, "static"")  

这个配置是可以的,只不过测试阶段和开发阶段到生产上线阶段我们使用的是 STATICFILES_DIRS,但是但是生产上线阶段,我们是将 STATICFILES_DIRS 给注释掉,使用 STATIC_ROOT 集成所有的 app 目录下的静态文件。
开发阶段:

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static")
]
#STATIC_ROOT = os.path.join(BASE_DIR, "static"")  

生产阶段:

STATIC_URL = '/static/'
#STATICFILES_DIRS = [
#    os.path.join(BASE_DIR, "static")
#]
STATIC_ROOT = os.path.join(BASE_DIR, "static"")  

js问题 - onchange 和 onclick 等等以及其他的触发失效奇葩 bug

有次不知道是什么问题,明明 onchange 字符没错吧,但在 pycharm 编程软件里,就是会有黄色的提醒颜色在,颜色类似如下:
在这里插入图片描述
一看到这种颜色,多少会有一点点瑕疵问题,但没事,对于 input标签来说,问题不大,但是但是,如果是 onchangeonclick 等其他的特殊属性是这种颜色提醒,那么就绝对有问题了,但是最让人纳闷的是,明明看起来没错的代码,实际却会无法生效,触发浏览器弹窗没反应。

这个是js前端测试过程中比较麻烦的问题了,一点报错信息都不会自动给出相应的报错代码位置提醒,需要手动console.log()
后面发现出现onchangeonclick 触发事件都是我复制别人代码过来的,想必应该有一点未知的原因在里面搞怪,所以后面就删除了这些触发事件,重新输入 onchangeonclick 事件,等pycharm 软件 会自动补全 onchangeonclick 时,就不会再次显示这个问题了,黄颜色警醒终于消失了,js 代码也终于生效了,触发事件弹窗测试也成功了。

参考链接

django项目开发部署完整案例【最终效果展示】【源码】【simpleui】【增删改查】 自定义图标

pymysql与MySQLdb(mysqlclient)性能对比

Django使用MySQL数据库出现的问题–mysqlclient库的安装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序搭建流程

一、申请微信开发者账号虽然开发微信小程序可以使用工具提供的测试号,但是测试号提供的功能极为有限,而且使用测试号开发的微信小程序不能上架发布。因此说我们想要开发一个可以上架的微信小程序,首先必须要申请微信开发者账号。大家尽可放心…

2023年总结的web前端学习路线分享(学习导读)

如果你打开了这篇文章,说明你是有兴趣想了解前端的这个行业的,以下是博主2023年总结的一些web前端的学习分享路线,如果你也想从事前端或者有这方面的想法的,请接着往下看! 前端发展前景 前端入门 巩固基础 前端工程…

深度学习J1周-ResNet50算法实战与解析_鸟类识别(CNN)

🍨 本文为[🔗365天深度学习训练营]内部限免文章(版权归 *K同学啊* 所有) 🍖 作者:[K同学啊] 本周任务: ●1.请根据本文 TensorFlow 代码(训练营内部阅读),编写…

EasyExcel3.x文件导入SpringBoot2

引入依赖<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.3</version></dependency>简单导出以导出用户信息为例&#xff0c;接下来手把手教大家如何使用EasyExcel实现导出功能&a…

华为OD机试题,用 Java 解【数字涂色】问题

华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…

微软正式推出用于 WSL 的 D3D12 GPU 视频加速

导读在允许 WSL 使用 OpenGL、OpenCL 和 Vulkan API 进行 GPU 加速之后&#xff0c;微软又正式发布了针对 Linux 的 Windows 子系统 (WSL2) 的 Direct3D 12 GPU 视频加速支持。 在允许 WSL 使用 OpenGL、OpenCL 和 Vulkan API 进行 GPU 加速之后&#xff0c;微软又正式发布了针…

【java基础】泛型的通配符(extends,super,?)

文章目录基本概念通配符extends通配符super无限定通配符?总结基本概念 如果不使用通配符&#xff0c;那么我们在使用了泛型之后就不允许类型参数发生改变了&#xff0c;但是有了通配符就可以更加灵活的控制类型参数&#xff0c;类型参数可以发生改变。下面准备了3个类用于演示…

【MAC OS 命令行】Redis的安装、启动和停止。就是如此简单

目录Mac 安装 Redis使用 Homebrew 安装 Redis总结Mac 安装 Redis 使用 Homebrew 安装 Redis 如果没有安装 Homebrew&#xff0c;先安装 Homebrew 执行命令&#xff1a; 方法一、brew 官网的安装脚本 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homeb…

浮点数的表示和运算

文章目录浮点数的表示表示溢出规格化IEEE754格式浮点数真值的计算公式范围浮点数的加减浮点数的乘除刷题小结浮点数的表示 表示 为什么会有浮点数&#xff1f;位数有限的情况下&#xff0c;既扩大了数的范围&#xff0c;也保持了数的精度。 浮点数的意思是小数点是浮动的&…

ERP(企业资源管理)概述

&#x1f31f;所属专栏&#xff1a;ERP企业资源管理&#x1f414;作者简介&#xff1a;rchjr——五带信管菜只因一枚&#x1f62e;前言&#xff1a;该系列将持续更新ERP的相关学习笔记&#xff0c;欢迎和我一样的小白订阅&#xff0c;一起学习共同进步~&#x1f449;文章简介&a…

利用Python按数字顺序批量修改文件名称

为了按顺序修改文件名称&#xff0c;采用对【文件名称列表】进行排序的方法。 要对列表进行排序&#xff0c;这里使用列表的sort()方法。这个方法会在不创建新的列表的情况下直接对列表进行排序。 逆序排列&#xff1a;sort(reverseTrue) files.sort()结果还是不理想&#x…

quarkus 搭建与基础开发环境配置总结

quarkus搭建与基础开发环境配置总结 大纲 基础概念quarkus2.13.7脚手架工程配置配置maven3.8.7quarkus快速启动quarkus的三种打包方式quarkus将程序打包为二进制文件window环境下quarkus云原生二进制文件打包环境搭建使用GraalVM-java11替换本地java8运行二进制文件 基础概念…

Linux操作系统学习(线程同步)

文章目录线程同步条件变量生产者与消费者模型信号量环形队列应用生产者消费者模型线程同步 ​ 现实生活中我们经常会遇到同一个资源多个人都想使用的问题&#xff0c;例如游乐园过山车排队&#xff0c;玩完的游客还想再玩&#xff0c;最好的办法就是玩完的游客想再玩就去重新排…

分享几种WordPress怎么实现相关文章功能

一淘模板&#xff08;56admin.com&#xff09;给大家介绍一下WordPress代码实现相关文章的几种方法&#xff0c;希望对大家有所帮助&#xff01; WordPress很多插件可以实现相关文章的功能&#xff0c;插件的优点是配置简单&#xff0c;但是可能会对网站的速度造成一些小的影响…

做数据分析有前景吗?

当然有前景的。 每个行业都有发展前景&#xff0c;只是看你自身的技能情况或者关系人脉、软实力方面是否到位&#xff0c;不同的行业要求不一样。作为数据分析领域而言&#xff0c;属于IT行业&#xff0c;看的是你的专业技能&#xff1b;只要你技能过硬&#xff0c;就能在行业…

蓝桥杯 时间显示

题目 输入输出样例 示例 1 输入 46800999输出 13:00:00示例 2 输入 1618708103123输出 01:08:23评测用例规模与约定 对于所有评测用例&#xff0c;给定的时间为不超过 10^{18}1018 的正整数。 运行限制 最大运行时间&#xff1a;1s最大运行内存: 512M 基础知识 时间的转换…

Go底层原理:一起来唠唠GMP调度(一)

目录前言一、进程、线程、Goroutine1、进程与线程2、Goroutine二、Go调度器设计思想1、线程模型1.1 内核级线程模型1.2 用户级线程模型1.3 混合型线程模型2、 被废弃的 G-M 调度器2.1 了解 G-M 调度如何工作3、如今高效的 GMP 模型3.1 GMP模型调度流程3.2 GMP调度设计策略3.3 G…

【Vue3】封装数字框组件

数量选择组件-基本结构 &#xff08;1&#xff09;准备基本结构 <script lang"ts" setup name"Numbox"> // </script> <template><div class"numbox"><div class"label">数量</div><div cla…

C语言-基础了解-19-C位域

C位域 一、C位域 如果程序的结构中包含多个开关量&#xff0c;只有 TRUE/FALSE 变量&#xff0c;如下&#xff1a; struct {unsigned int widthValidated;unsigned int heightValidated; } status;这种结构需要 8 字节的内存空间&#xff0c;但在实际上&#xff0c;在每个变…

引领云数仓创新浪潮 HashData闪耀PostgreSQL中国技术大会

3月3日-3月5日&#xff0c;第12届PostgreSQL中国技术大会在杭州举行。本次大会以“突破•进化•共赢——安全可靠&#xff0c;共建与机遇”为主题&#xff0c;以线上线上结合的方式&#xff0c;邀请了PG领域众多行业大咖、学术精英及技术专家&#xff0c;共同探讨数据库未来的发…