- 博客(183)
- 收藏
- 关注
原创 【Python实战】从架构设计到实现:一个Powerful的图书管理系统
最近给小朋友教学python,让他们自己做一个图书管理系统,然后做完之后大家坐在一起做一下代码评审,想着他们都做了,自己也写一份给他们看一下吧。网上现有的图书管理系统可以说是一找一大堆,但是都是按照新手的水平写的,代码没有什么架构(因为有经验的人也不愿写这种系统),自己也是因为出于教学目的才重新写了一遍,正好把一些面向对象、MVC架构、高内聚低耦合、设计模式等思想传授给他们。
2023-04-16 16:42:22
1878
1
原创 【Python开发手册】深入剖析Google Python开发规范:规范Python注释写作
在Python编程中,注释的作用不仅仅是解释函数或代码块的作用,还可以提高可读性、可维护性和表达代码意图的清晰性。正确书写Python注释,既是程序员的编程规范,更是提高代码质量的必要措施。因此,本文总结了Python注释的写法规范和注意事项,以及如何利用Pycharm代码模板快速生成规范注释的方法,帮助广大程序员提高代码质量和效率。
2023-04-16 01:34:09
1584
1
原创 【Zigbee】解密Zigbee地址分配——你需要知道的一切
简单来说,Zigbee是一种通信技术。具体地,ZigBee技术是一种近距离、低复杂度、低功耗、低数据速率、低成本的双向无线通信技术。主要适合于自动控制和远程控制领域,可以嵌入各种设备中,同时支持地理定位功能。
2023-04-14 15:40:02
5044
1
原创 深度分析MVC和MVVM:你在选择框架的时候应该注意什么?
最近在做安卓开发,重温一下MVC和MVVM的概念,于是去网上搜了一下,网上关于MVC的介绍有很多,但是对MVVM的介绍都不是很全面,因此本人打算重新写一篇文章梳理一下,本文将介绍什么是MVC, MVVM架构,并且将引用一些简单的例子进行讲解。首先,需要明确的一点是,MVC是软件开发中一个比较成熟的概念,下面用苹果开发者文档中的一个图片来展示这个架构再适合不过了。Model:数据模型,用来存储数据View: 视图界面,用于渲染UI界面和进行用户交互。
2023-04-13 00:18:55
685
原创 【django开发手册】Django 中使用自定义用户模型:一个比自带 User 更强的选择
Django 是一个非常受欢迎的 Python web 框架,自带的用户认证体系能帮助我们简单地实现注册、登录和权限控制等功能。然而如果需要实现更多的功能,比如自定义用户属性,或者实现不同的用户类型(如普通用户和管理员用户等),使用 Django 自带的 User 模型就可能会变得比较麻烦和受限。这时候,自定义用户模型就成为了一种很好的解决方案。本篇博客将介绍如何在 Django 中创建自定义用户模型,并给出完整的代码示例。
2023-04-12 01:30:45
1153
1
原创 【django开发手册】DRF外键模型查询没有信息?教你实现序列化返回
在使用DRF进行开发时,如果遇到外键模型无法正确查询的问题,可能需要手动序列化外键模型的信息。在本文中,我将介绍DRF中如何手动序列化外键模型的信息,并通过一个具体的示例来展示如何实现这一功能。本文介绍了如何手动序列化外键模型的信息,帮助开发者解决在使用DRF开发时遇到的外键模型查询问题。通过自己手动序列化外键模型信息,不仅可以获得更详细的数据,还可以更加灵活地进行数据处理和返回。希望本文能够对DRF开发者有所帮助。
2023-04-03 20:15:13
582
原创 【django开发手册】如何使用select_related进行一次连表查询
Django是一款Python Web框架,致力于充分利用Python的简洁语法和语言特性来提高Web开发的效率。其中一个强大的特性是ORM(Object-Relational Mapping),它使开发者可以使用Python代码而不是SQL查询语言来访问数据库。ORM不仅使得数据库访问变得简单,还使得关系数据模型的操作非常方便。在这篇博客中,我们将讨论Django ORM 中的关键特性——外键,以及如何使用Django REST Framework(DRF)来实现外键关联查询。
2023-04-03 19:48:15
1071
原创 【django开发手册】drf通过添加自定义字段优化DRF序列化器,轻松实现高速API
在DRF中,序列化器会将查询结果序列化为JSON或其他格式。但在某些情况下,我们需要序列化的结果中包含原始结果没有的字段。例如,我们需要计算一个人的年龄并将其添加到序列化结果中。在这种情况下,我们可以使用SerializerMethodField来向序列化器中添加自定义字段。下面是一个演示示例,假设我们有一个名为People的模型,它包含姓名和出生日期两个属性。我们需要将出生日期转换为年龄并将它添加到序列化结果中。
2023-04-01 21:20:39
1362
原创 【django开发手册】DRF提升Django查询效率,你需要知道的重要操作
在Django ORM中,使用可以避免N+1查询问题,提高查询性能。在实际的开发中,我们通常需要在序列化时嵌套使用,将嵌套数据一起序列化出来。
2023-04-01 16:18:07
674
原创 【django开发手册】解决admin添加外键下拉显示外键的问题
在django admin开发的时候,在添加数据的时候,发现了下图的问题。项目id是BimFaceModel的外键,所以在添加数据的时候显示出来是如下的样子,如何把它改成项目名呢?
2023-03-31 22:11:51
903
原创 【Django Rest Framework优化实践】ResponseResult、异常处理方法详解
Django Rest Framework(DRF)是一个快速构建Web API的工具包,使用DRF可以轻松地创建RESTful API,实现前后端分离开发。在实际开发中,我们经常需要统一返回结果集、全局异常处理和拦截器等操作,本篇博客将通过代码实现,为大家详细介绍如何优化DRF的ResponseResult类、全局异常处理机制以及拦截器,从而让我们的开发工作更加便捷。在Django Rest Framework中,我们经常需要对返回结果集进行统一处理,优化ResponseResult类可以让我们更加方便地
2023-03-30 22:28:08
659
原创 【DRF】深度分析枚举类型在DRF中的序列化问题及解决方案
在本文中,我们将讨论RDF开发中的JSON序列化问题以及解决方案。具体而言,我们会讨论一个常见的问题:枚举类型无法被JSON序列化。下面,我们将探索这个问题的本质,以及如何解决它。
2023-03-30 17:38:30
679
原创 【PyQt】在QtDesigner中使用自定义组件
本文将介绍pyqt如何在在QtDesigner中使用自定义组件,给出整个流程的方法。这个问题是本文在接触到这个项目时遇到的问题,是一个PyQt的组件库,通过,你可以构建好看的PyQt的UI。问题在这里,,实现了pyqt中的QPushButton等控件,假设名为button.py的PushButton,现在我有一个基于pyqt开发的老项目,想要在尽可能不改动原有代码的前提下进行Button的样式风格进行迁移,迁移成button.py中的button风格...
2023-03-28 22:54:10
5905
2
原创 高级Prompt指南:打造高效聊天体验,让ChatGPT更懂你
Prompt engineer是一种技术,它使用机器学习来帮助我们自动生成文本。在这个领域,机器学习算法将从大量的数据中提取出统计特征,以预测要在生成。这些算法可以分为三个主要部分:生成、筛选和评估。生成阶段是Prompt engineer的重点部分,它可以帮助我们从一个简短的提示开始,逐步生成更多的文本。那么,为什么我们需要学习Prompt engineer呢?简单地说,Prompt engineer可以帮助我们更好地完成各种文本任务。
2023-03-28 19:17:07
7766
原创 【pyqt开发手册】快速构建一个基于PyQt MVC的用户登陆模块
本文将介绍如何使用PyQt快速构建一个登陆注册系统,结合本人迭代多次的PyQtMVC架构,你可以方便快速的上手进行PyQt相关项目的开发,你可以一步一步跟着教程进行配置,也可以直接fork代码直接运行。项目地址:Undertone0809/pyqt-user-login: 一个基于PyQtMVC封装用户注册登陆模块模板。
2023-03-21 21:48:44
350
原创 【cushy-storage】一个基于磁盘缓存的ORM框架
cushy-storage是一个基于磁盘缓存的Python库,可以将Python对象序列化后缓存到磁盘中,以便下次使用时直接读取,从而提高程序的执行效率,该库对经常需要读写数据的友友们极为友好。
2023-03-21 16:48:11
751
原创 【django开发手册】关于django admin添加表信息的时候外键无法为空的问题解决方案
笔者在项目开发的时候,在django admin后台管理添加User的个人信息的时候,没有填写User的一个外键字段company_id导致添加错误,但事实上,笔者在User的字段设置的时候已经设置了该字段可以为空,那么为什么在后台admin添加数据的时候还是会失败呢?
2023-03-19 17:33:27
558
原创 【django开发手册】django admin如何显示外键对应的字段
项目开发时遇到的一个需求,有一个SysUser表和一个Company表,字段如下所示,我们需要在django admin中在SysUser基本信息的时候一起渲染出Company_name而不是Company_id。
2023-03-19 17:25:24
1879
原创 【cushy-socket】一款轻量级的Python Socket框架
cushy-socket是一个轻量级的Python socket库,相较于传统的socket库,cushy-socket可以创建一个TCP/UDP程序。
2023-03-11 09:30:00
1708
原创 【cushy-serial】一个轻量级Python serial库
cushy-serial是一个轻量级的Serial框架,初衷是希望使Serial编程变得更加简单、快捷,因此,相较于传统的pyserial,该框架可以更加快速地构建起一个serial程序。
2023-03-10 21:36:54
1671
原创 数据库表字段命名规范
当前研发工作中经常出现因数据库表、数据库表字段格式不规则而影响开发进度的问题,在后续开发使用原来数据库表时,也会因为数据库表的可读性不够高,表字段规则不统一,造成数据查询,数据使用效率低的问题,所以有必要整理出一套合适的数据库表字段命名规范来解决优化这些问题。
2023-03-09 18:03:32
1622
原创 《机器学习》贝叶斯定理的运用
朴素贝叶斯是一种基于贝叶斯定理的分类算法。贝叶斯定理是指对于两个事件A和B,可以表示为 P(A|B)=P(B|A)P(A)/P(B)。朴素贝叶斯算法假设所有输入特征之间相互独立,这样可以将多个特征的贡献组合起来,并使用贝叶斯定理来进行决策。
2022-12-29 04:22:25
749
原创 《python》用psutil获取电脑CPU内存等参数信息
本人基于win10测试,本文展示了使用 Python 的 psutil 库来监听电脑的内存、CPU、GPU 等信息。
2022-12-29 04:18:02
4118
原创 《flask》flask+mqtt联动快速上手
本文旨在介绍如何快速上手联动flask + mqtt,本文将会给出一个简单的demo,用于演示在如何通过访问flask接口来触发mqtt,并在flask运行的基础的上对mqtt进行订阅。
2022-12-29 02:53:17
3509
5
原创 《ESP32》Adafruit_GFX、u8g2驱动ssd1306
本示例将使用ESP32驱动ssd1306,将为你介绍SSD1306,接线方式以及如何使用Adafruit_GFX、u8g2两种模式进行开发SSD1306。
2022-12-24 00:06:41
6411
原创 《markdown》语雀导出markdown的图片外链问题
刚开始的时候,对于语雀导出的markdown,里面的图片我都是结合PicGo一张一张的将图片的链接转移成自己的图床,但是因为本人一直都有发博客的需求,这个问题我是不太忍得了,加上网上搜索也没有什么人做了相似的解决方案,因此笔者自己用python写了一个转换器,旨在解决这个问题,笔者设计了一个可以批量转换markdown中的图片链接为自己的图床的链接的转换器,并重写成一个新的md文件。您只需要修改yaml配置就可以直接运行,十分方便。新的文件会把原来语雀的旧链接全部替换掉。配置你的图床,你可以使用。
2022-12-18 01:34:34
1869
4
原创 当我用ChatGPT中学习CNN卷积神经网络时...
ChatGPT大火,在这一段时间并没有觉得ChatGPT特别厉害,最多就是一个基于生成式对话的NLP模型罢了,直到我看到了AI扮演Linux虚拟机,能管理文件&编程&开浏览器,还能跟自己「套娃」聊天 | ChatGPT新玩法于是好奇的我打算去讨教一下ChatGPT,于是就有了以下的场面...
2022-12-10 16:17:44
3106
原创 《操作系统》LRU和FIFO页面置换算法模拟实战
本文将介绍如何使用LRU和FIFO实现页面置换的模拟(Python实现),并使用缺页率进行算法的评价。
2022-12-04 15:33:34
2545
原创 Python为什么很多第三方lib用_xxx而不用__xxx?
看了很多lib的源码,一直很疑惑为什么很多不想让外界访问的function和param的权限是protected,基本没有人用private,后来发现...
2022-11-25 13:17:59
370
原创 《PID》一篇文章带你搞懂使用PID
本文先从介绍PID的概念开始,由Kp到Ki再到Kd逐步深入讲解,并展现出了从Kp到pid三个变量组合发展过程和Python代码实现,适合新手入门。
2022-11-24 01:36:48
4870
5
原创 《操作系统》一个优美的时间片轮转调度算法模拟Python实现
设计一个有N个进程并发的进程调度程序。每个进程有一个进程控制块(PCB)表示(可以用PCB直接代表进程实体,略去每个进程的程序段和数据段的具体运行)。进程控制块可以包含如下信息:进程名、到达时间、需要运行时间、已用CPU时间、进程状态等等, 并初始化设置一批进程控制块实例,通过对进程控制块实例对象的控制,来模拟进程调度的控制过程。如何写一个优美的时间片轮转调度算法模拟Python实现?加点面向对象就好了…
2022-11-23 01:16:20
1803
原创 【broadcast-service】一个轻量级Python发布订阅者框架
broadcast-service是一个轻量级Python发布订阅者框架。只需要引入一个单例类,你就可以十分轻松地构建起一个发布订阅者模式,几乎没有代码侵入性。文章中介绍了自己构建的一个轻量级的Python发布订阅者框架,今天来简单介绍一下...
2022-11-23 00:24:26
2522
2
原创 Python最佳实践-构建自己的第三方库
在写项目的时候需要用到发布订阅者模式(又叫广播模式),于是就实现了一下,写完之后感觉可以封装成库,于是查阅了一下如何在python上开发自己的第三方库,并上传至Pypi,让别人可以直接pip下来。接下来就可以编写核心代码了,笔者在这里实现了一个轻量级的广播模式,不需要创建更多的类,直接引入一个单例类,即可在自己的应用程序中构建其一个完善的消息分发和广播回调模式,因此,我在。不是一定要叫_core.py,叫什么都无所谓,至于为什么要取名_core.py,后面会介绍,这是一个不错的实践优化。
2022-11-20 01:50:23
4242
2
原创 ecjtuacm2022 C-n层妖塔
n层妖塔是一座有n层的妖塔。当然,这是废话。最下面是第11层,最上面是第nn层,每一层都有一个守护者,第ii层的守护者的战力是a_ia 。当且仅当挑战者的战力严格大于守护者的战力时,才可以将其击败。挑战者鸡败第ii层的守护者后可以前往第i+1i+1层,当战胜第nn层的守护者后,视为挑战成功。挑战一次守护者会耗费一点时间,并且挑战成功后会获得一点战力提升。如果挑战者无法击败该层守护者,挑战者可以选择花费一点时间来修炼,每次修炼后会获得一点战力提升。但是守护者的战力并不是越高层越强大,并且挑战者也
2022-11-19 15:00:00
388
原创 Python BFS 695. 岛屿的最大面积
原题695. 岛屿的最大面积,常规题了,小小bfs一下。这里有个问题需要说明一下,在数组初始化的时候,常常会有两种方法,如下:事实上method2会更快一点,所以平常我也是使用method2来进行数组的初始化,今天做这题的时候,我初始化了一个二维数组,然后就一直出问题,无法得到正确答案!去网上一搜,原来才发现这样做是不对的,因为是一个一维数组的对象,*m的话只是把对象的引用复制了m次,如果我修改,会同时发生改变!正确的方法还是应该...
2022-11-19 10:31:23
831
原创 Arduino定时器&中断的使用和快速上手
定时器和中断都是单片机中的重要的功能,使用中断功能可以完成很多更加复杂的控制,而定时器和中断常常搭配在一起使用,本文将通过几个示例程序简单快速的上手定时器和中断。
2022-11-13 15:38:13
24250
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅