自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

73

致力于vex机器人竞赛c语言程序开发和python领域研究

  • 博客(104)
  • 资源 (1)
  • 收藏
  • 关注

原创 自定义图片上传按钮

点击默认图片,弹出上传界面功能实现

2022-07-19 21:55:42 386 1

原创 深入探索VEX EDR V5的setPenColor语句的用法

​Hi , 大家好。最近啊,Mr.期杉在开发"数字雨"项目的过程中,遇到了一个难题:如何给界面上不同的符号设置不同的亮度。在深入的研究之后,发现了setPenColor语句的新用法,特此分享。先来详聊一下遇到的问题。先看一下以下两张图,哪一张的展示效果更好呢?很明显,右边那张每一列有渐变的效果比左边的看上去更加的具有科技感。为了实现右边的效果,我特地去查了下VEXCode的API文档,查到了setPenColor一共有四种用法,如下所示。通过实践发现,前两种用法只能够通过传入指定的颜色名称,来给画

2022-05-07 09:37:17 523

原创 电商系统中的商品搜索功能(Django+Haystack+Elasticsearch)

1、搜索技术简介结构化数据检索----可以使用SQL的模糊查询 like 关键字查询需要在多个字段中进行使用 like 关键字也不方便like 关键字的效率极低like 关键字不能对查询得到的多个结果进行较好的排序全文检索全文搜索是用于搜索非结构化数据的一种搜索技术,比如通过关键字搜索多个word文件内容中哪些文件包含这个关键字,搜索多个邮件内容中哪些邮件包含这个关键字等等全文搜索有两种方法:1、顺序扫描,何为顺序扫描?比如要找的内容包含某一个字符串的文件,就是一个文档一个文档的看,对于

2021-09-14 17:21:05 1391

原创 mac系统下使用docker安装FastDFS文件存储系统

Docker安装运行FastDFS1、获取FastDFS镜像# 从仓库拉取镜像sudo docker image pull delron/fastdfs2、开启tracker容器将tracker运行目录映射到宿主机桌面上的fdfs目录下的tracker目录中(前提在宿主机的桌面已经创建了 fdfs 文件夹)sudo docker run -d --name tracker -p 22122:22122 -v ~/Desktop/fdfs/tracker:/var/fdfs delron/fas

2021-08-24 09:57:39 905 2

原创 web网站--第三方登录功能

下面,我将以QQ第三方登录为例进行讲解,其它类型的第三方登录都是类似的流程。1、QQ互联开发平台申请成为开发者若想实现QQ登录,需要成为QQ互联的开发者,审核通过了才可以实现。2、创建应用成为QQ互联开发者之后,还需创建应用,获取本项目对应与QQ互联的应用ID。3、根据文档进行开发3.1、准备工作QQ登录参数我们申请的客户端idQQ_CLIENT_ID我们申请的客户端秘钥QQ_CLIENT_SECRET我们申请时添加的:登录成功后的回调路径QQ_REDIRECT_URI3.2、放

2021-07-14 10:21:10 959

原创 MySQL事务隔离级别在电商系统中订单功能中的应用

事务的隔离级别是指多个事务并发的处理同一个数据的时候,一个事务修改了数据之后,其它事务何时可以看到修改后的结果。主要分四种:1、SERIALIZABLE:串行化,多个事务同时使用一个表的时候,不可以对这个表修改,否则会修改失败,如果想要修改这个表,只能一个事务一个事务顺序执行。2、REPEATABLE-READ:可重复读,无论其它事务是否修改并提交了数据,在本事务中对数据的多次读取结果都相同,不受其他事务影响。3、ERAD-COMMITTED:读取已提交,其它事务提交了对数据的修改之后,本事务就能读

2021-05-07 11:31:46 447

原创 电商系统-提交订单并发处理

在多个用户同时发起对一个商品的下单请求时,先查询商品库存,再修改商品库存,会出现资源竞争问题,导致库存的最终结果出现异常。1、并发下单问题演示每个不同的用户在程序上,我们可以理解成不同的线程,每个线程在使用CPU会请求到一个时间片来执行任务,一旦时间片到了,会切换到下一个任务上去。这里我们这样去模范这样的场景,在我们的程序中,手动的加入一段代码,实现这样的效果。在成功的查询库存之后,插入这样的一段代码。强制性的让下单的过程等待5秒,再等待的同时,另外一个用户也去提交相同产品的订单,这样就可以实现并发

2021-05-07 08:25:00 1931

原创 电商系统-提交订单事务管理

在保存订单数据时,涉及多张表(OrderInfo、OrderGoods、SKU、SPU)的数据修改,对于这些数据的修改应该是一个整体的事务,要么一起成功,要么一起失败。Django对于数据库的事务,默认每执行一句数据库操作,便会自动提交。所以我们需要在保存订单中自己控制数据库事务的执行流程。在 Django文档的数据库事务中,有两种 装饰器用法 和 with语句用法。装饰器用法:整个视图中所有MySQL数据库的操作都看做一个事务,范围太大,不够灵活。而且无法直接作用于类视图。with语句用法:可以灵

2021-05-04 16:53:59 653

原创 电商系统中购物车功能设计实现

1、业务需求分析无论用户是否处于登录状态,都可以把商品添加到购物车中,并操作购物车中的商品。没登录的情况下,可以先选择想要的商品到购物车中,当登录之后,直接把之前没登录的购物车的产品直接加入到登录之后那个人的购物车中。2、登录用户购物车存储方案1、存储位置由于购物车数据量小,结构简单,更新频繁,所以我们选择内存型数据库redis进行存储"carts": { # carts "BACKEND": "django_redis.cache.RedisCache", "L

2021-05-01 14:54:13 4403 3

原创 电商系统中用户的浏览记录功能是如何实现的

知识点:Django框架、redis数据库1、业务需求分析当登录用户在浏览商品的详情页时,我们可以把详情页这件商品信息存储起来,作为该登录用户的浏览记录;用户未登录,我们不记录其商品的浏览记录。2、浏览记录数据存储存储内容:虽然浏览记录界面山要展示商品的一些SKU信息,但是我们在存储的时候没有必要存很多的SKU的信息,我们选择存储SKU信息的唯一编号(sku_id)来表示该件商品的浏览记录。存储位置:用户浏览记录是临时的数据,且经常变化,数据量不大,所以我们选择内存型数据库redis进行存储。

2021-04-29 11:04:51 3713

原创 使用Docker运行FastDFS实现上传和下载文件

Docker安装运行FastDFS1、获取FastDFS镜像# 两种方式1. 从仓库拉取镜像sudo docker image pull delron/fastdfs2. 解压本地镜像sudo docker load -i 文件路径/fastdfs_docker.tar2、开启tracker容器将tracker运行目录映射到宿主机的 /var/fdfs/tracker 目录中(前提在宿主机的var目录下已经创建了 fdfs 文件夹)sudo docker run -dit --name=

2021-04-23 10:56:57 336

原创 Docker介绍

简介Docker是一个软件运行环境的打包和虚拟工具,可以把我们的软件开发、测试、运行等环境打包成一个文件,然后通过这个文件在另一个电脑上虚拟一个刚刚一样的环境,供我们开发、测试、运行软件。下面有一个场景可以充分的说明Docker的优势。假如,春节放假了,在家你突然有个很好的idea想要在开发环境里面试试效果,但是你没有带电脑回家,家里的电脑上你还得按照按照之前的步骤配置Django的安装环境,把Django项目从头到尾写一遍,是不是特别的麻烦。这个时候Docker就派上了用场,使用Docker把前面

2021-04-23 09:17:48 86

原创 电商系统中的SPU和SKU

1、SPU介绍SPU = Standard Product Unit(标准产品单元)SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗的讲,除去规格信息以外的,属性值、特性相同的商品就可以归类到同一个SPU里面。2、SKU介绍SKU = Stock Keeping Unit(库存量单元)SKU是库存进出计量的单元,可以是以件、盒等为单位,是物理上不可分割的最小存货单位,是一款具体规格的产品。通俗的讲,SKU是指一款商品,每款都有一个SKU,便于

2021-04-22 09:39:39 1358 5

原创 归纳记录总结在Django网站开发过程中如何设计实现类似于省市区的三级联动功能

功能需求介绍:在网站开发的过程中,难免会遇到类似于"省市区"这样的多级联动的下拉框的功能存在,比如在电商的网站开发中,用户购买了东西需要填写收货地址这样的情况。为了给用户提供一个比较方便比较好的体验感,很多网站都采用了三级联动这样的一个效果,也就是当用户选择了某一个省份之后,再去选择市的时候,市的那个下拉框只会弹出属于这个省下的市,而不会出现别的省份的市。那么接下来就来聊一聊,在我的电商的项目中是如何去实现这样的一个功能的。首先是表结构的设计,这里,我采用的是自关联的方式,将省市区的所有数据都存在一

2021-04-20 18:08:57 437

原创 Django网站开发中如何利用邮箱发送邮件实现验证功能

文章目录1、配置邮件服务器2、使用 django.core.mail.send_mail() 发送邮件3、邮件的验证功能实现1、配置邮件服务器在学习怎么写代码来发送邮箱之前,我们先来认识下Django发送邮箱的过程是怎么样的。如上图,我们的客户端是将邮件发送到一个叫做 SMTP 的服务器上面,SMTP转发邮件到 POP3 上,最后我们的用户从 POP3 去取邮件,这样的一个过程。所以,我们在写具体的实现代码之前,需要配置好第三方的邮箱服务器。配置好了才可以借助第三方的服务器完成发送邮箱的功能。

2021-04-17 10:54:56 710 4

原创 login_required装饰器

Django用户认证系统提供了 login_required 函数装饰器来限制页面的访问,使用 login_required 装饰器的视图函数的页面,只有登录的用户可以访问。login_required 装饰器定义在 django.contrib.auth.decorators 模块中,内部封装了 is_authenticated 来判断用户是否登录。如果已经登录则进入内部视图,执行视图函数逻辑。如果未登录默认被重定向到 setting.LOGIN_URL 配置项指定的地址。1、login_requi

2021-04-15 13:02:09 1321

原创 Django网页开发--多账户登录

1、产品需求:在用户登录的时候,可以输入 用户名+密码 登录,也可以输入 手机号+密码 登录2、产品现状:目前,我们登录使用的django.contrib.auth.authenticate()方法验证的用户名和密码是否正确,正确返回User对象,否则返回None,来判断用户输入的凭证是否正确authenticate()方法会调用Django框架的 认证后端 的authenticate()方法来实现用户的认证。Django自带的用户认证后端是 Django.contrib.auth.backends

2021-04-14 10:41:07 676

原创 异步方案celery+rabbitmq小结(python、django)

实际开发过程中遇到的问题:在开发网页的过程中,如果遇到网络请求这样的耗时操作,将会给用户在使用网页的时候带来不好的体验效果。比如说在注册账户的时候,用户点击了请求手机验证码的操作,但由于网络请求的延时的问题,导致网站的请求界面没有任何的反应,如倒计时提示60秒后可以再次请求一次验证码,给用户造成自己没有点击成功的错觉等不好的用户体验效果。如何解决这样的问题呢?异步发送短信将发送短信和界面响应的分开执行,开启一个子进程来执行发送短信的任务。上面的方案又存在什么样的缺陷呢?假如现在用户注册的需要执行

2021-04-14 09:36:09 1218 2

原创 容联云通讯短信平台

目录1.容联云通讯短信平台准备工作1.1.注册并登录容联云1.2.打开容联云管理控制台1.3.创建容联云应用1.4.申请应用上线1.5.完成资质认证,应用成功上线1.6.添加测试号码1.7.设置短信模版2.使用容联云通讯短信SDK发送短信2.1.模版短信SDK下载2.2.模版短信SDK使用说明2.3.模版短信SDK返回结果说明3.封装发送短信单例类3.1.封装发送短信单例类3.2.封装发送短信单例方法1.容联云通讯短信平台准备工作1.1.注册并登录容联云容联云通讯地址:https://www.yunt

2021-04-09 11:29:34 872

原创 Redis常见面试题

5.2.1 Redis 是什么?常⻅的应用场景?redis是一个缓存数据库,是一个非关系型数据库的键值存储数据库应用场景:内容缓存,主要用于处理大量数据的高访问负载;日志系统5.2.2 Redis 常⻅数据类型有哪些?各自有什么应用场景?String:存储的数据是普通的键值对可用String来进行存储Hash:存储的数据是一组关联性较强的数据,如一个人的生日、年龄、姓名等一系列信息List:存储的数据是列表、消息队列等Set:存储的数据类型是不重复的列表可用Sorted Set:存储的

2021-01-05 14:51:50 276 1

原创 python面试题之MySQL数据库

5.1.1 NoSQL 和 SQL 数据库的比较?1、使用成本上,nosql使用简单,易搭建,大部分是开源的;sql通常需要安装部署,开源的比较少,价格昂贵2、存储形式上,nosql具有丰富的存储形式,如键值对形式、文档形式、图结构形式等,可以存储各种类型的数据;sql采用关系型数据模型,它是行列结构,采用二维表结构的形式存储数据3、从查询速度上来看,nosql的数据在缓存中,因此查询速度快;sql数据是存在硬盘中的,查询数据相对较慢4、是否支持ACID特性,nosql不支持,sql支持5、是否支

2020-12-30 09:36:05 997

原创 4. 网络编程TCP UDP HTTP SEO WSGI 等

4.1.1 UDP 和 TCP 有什么区别以及各自的优缺点?区别: 1、UDP是面向无连接的通信协议,发送数据前不需要建立连接;TCP是面向连接的通信协议,发送数据前需要通过三次握手来建立连接 2、UDP数据不保证完全交付,存在丢包的情况;TCP发送数据可靠,无差错,不丢失,不重复 3、UDP对系统资源要求不高,TCP对系统资源要求高 4、UDP适合于传输大量数据且不要求传输精度的场合,TCP适合传输少量数据且传输精度高的场合 5、UDP传输速度快,TCP传输速度慢 6、UDP面向报文,TCP

2020-12-29 14:51:02 251 1

原创 2.5 python面试之面向对象

2.5.1 面向过程和面向对象编程的区别?各自的优缺点和应用场景?面向过程是以过程为中心,将复杂的问题拆分成多个小问题,再把小问题拆分成更小的问题,小到能够可以解决为止。然后用函数来实现,最后依次调用每个函数即可。优点:复杂的问题简单化,程序设计的复杂度较低,缺点:可扩展性差面向对象是以对象为中心,将一类具有相同特征的现实实体抽象成模型,用模型来表示实体的相同属性。用类来实现。优点:扩展性强,缺点:程序设计的复杂度高2.5.2 面向对象设计的三大特征是什么?封装:功能的具体实现方式对用户不可见继

2020-12-29 10:33:23 121

原创 2.4 python模块,面试题,懂这些就够了

2.4.1 如何查看模块所在的位置?__file__import osprint(os.__file__)2.4.2 import 导入模块时候,搜索文件的路径顺序?python标准库模块python第三方模块自定义模块2.4.3 多模块导入共享变量的问题?2.4.4 Python 常用内置模块有哪些?sys、os、math、re、random、time、timedate、xml、hashlib2.4.5 Python 中常⻅的异常有哪些?IOError、IndexError

2020-12-28 15:37:10 164

原创 python高级用法(装饰器、闭包、迭代器、生成器)

2.2.1 编写函数的四个原则是什么?1、函数尽量短小,嵌套不宜过多2、参数不能太多3、向下兼容4、一个函数只做一件事2.2.2 函数调用参数的传递方式是值传递还是引用传递?引用传递2.2.3 Python 中 pass 语句的作用是什么?占位符,什么也不做2.2.4 闭包函数的用途和注意事项?2.2.5 *args 和 **kwargs 的区别? *args接收多个位置参数,打包成列表 **kwargs接收多个关键字参数,打包成字典2.2.6 位置参数、关键字参数、包

2020-12-28 14:39:07 140

原创 python之类和元类

1 类 class 和元类 metaclass 的有什么区别?元类就是创建类的类2 类实例化时候,init 和 new 方法有什么作用?init是初始化的方法,初始化类的一些基本信息,如给变量赋值new是实例化的方法,创建类的具体实例,重写new可以实现单例模式3 实例方法、类方法和静态方法有什么不同?实例方法就是类中的普通方法,由实例对象调用类方法只能访问类变量,不能访问实例变量静态方法其实和类没有关系,不能直接调用类的属性,如果非说有关系的话,就是通过类来调用4 类有哪些常用的魔

2020-12-27 14:04:57 106

原创 python常用内置函数

1、如何统计一篇文章中出现频率最高的 5 个单词?import red={}str='If we want to" run Locust \ / distributed on multiple machines we would also have to specify the master host when starting the slaves (this is not needed when running Locust distributed on a single machine, sin

2020-12-27 12:46:57 123 2

原创 python数据类型

1、Python 中的可变和不可变数据类型是什么?可变:list、dict、set不可变:string、tuple、number2、is 和 == 有什么区别?is判断两者值和内存地址是否全相同==判断两种值是否相同3、Python 中的单词大小写转换和字母统计?upper():小写转大写lower():大写转小写title():字符串中每个独立的单词的首字母大写capitalize():字符串中的第一个单词的首字母大写swapcase():大小写互换count(s):

2020-12-27 10:37:35 165 2

原创 python文件 I/O 操作

1、Python 中打开文件有哪些模式?2、Python 中 read 、readline 和 readlines 的区别?read:如果带参数size,从当前位置开始读取size个字节的内容;无参,把文件中的所有内容全部读取到内存中readline:把文件中的一行读取到内存中,文件指针移到下一行readlines:读取文件的所有行3、大文件只需读取部分内容,或者避免读取时候内存不足的解决方法?# 1、一次只读取部分内容,通过read指定size的大小来读取import osfilenam

2020-12-26 22:03:00 103

原创 python语言特征及编码规范

1、Python 的解释器有哪些?CPython:从python官网下载安装的python中用的解释器就是CPython,使用最普遍,用c语言开发PyPy:目标是提高运行的效率,采用了JIT技术,对python代码进行动态编译JPython:是在java平台上运行的解释器,能将python代码生成java字节码IronPython:是在.net平台上运行的解释器,能将python代码生成.net字节码IPython:是在CPython的基础上开发的一个交互式平台,只是在交互能力上有提升,其它和C

2020-12-26 17:13:36 330 2

原创 关于python中的进程和线程,知道这些就足够了

1、并发与并行的区别和联系?并发:一个cpu交替执行多个进程并行:多个cpu同时执行多个进程2、程序中的同步和异步?同步:是指协同合作,相互配合。有执行的先后顺序,比如a和b两个线程同时完成一个任务,a先做,某一时刻它需要b的返回结果才能继续往下做,就通知b来做,b做完了再通知a继续做。异步:与同步相反,我做好了我告诉你一下之后就自己继续往下做,不管你有没有在做。3、进程、线程、协程的区别和联系?区别:进程:操作系统进行资源调度的最小单位,系统中的一个应用程序就是一个进程,如qq,进程与进

2020-12-18 12:56:54 148

原创 python中的内存管理,知道这些就足够了

1、Python的内存管理机制是什么?总结的说就是,引用计数、垃圾回收、内存池机制垃圾回收:当程序中使用的对象越来越多,占据的内存越来越大,垃圾回收就会起作用,回收不再使用的对象;垃圾回收是以引用计数为主,标记消除和分代回收为辅的回收机制,标记消除和分代回收只要是为了解决循环引用的问题。引用计数:当一个变量保存了一个对象的引用时,该对象的引用计数+1;当使用del来删除该对象时,该对象并不会直接被回收,而是它的引用计数-1,当多次del后,如果该对象的引用计数变为了0,该对象才会在内存中被彻底删除。

2020-12-17 13:29:15 319

原创 关于python面试中的设计模式,搞懂这些就足够了

1、什么是设计模式?设计模式是经过总结、优化,对我们经常遇到的一些编程问题的可重用的解决方案。设计模式不同于类或库可直接作用于代码。相反,它更为的高级,是一种必须在特定的情形下实现的方法模版。2、面向对象中设计模式的六大原则是什么?开闭原则:一个软件实体如类、模块和函数,对扩展开放,对修改关闭,即一个软件实体应该在不修改原有代码的基础上进行扩展里氏替换原则:引用父类的地方都应该能透明的调用其子类的对象依赖倒置原则:高层模块不应该依赖底层模块,两者都应该依赖其抽象类,抽象不应该依赖细节,细节依赖抽

2020-12-15 16:10:10 177

原创 python实现单例模式

# 创建一个单例模式class Singleton(object): _instance = None def __new__(cls,*args,**kwargs): if not cls._instance: cls._instance = super(Singleton, cls).__new__(cls,*args,**kwargs) return cls._instanceclass MyClass(Singleto

2020-12-15 16:07:01 58

原创 Python中的数据结构

问:Python中的数据结构有哪些?列表、字典是怎么存储数据的?答:列表(list)、字典(dict)、元组(tuple)、集合(set)列表是一个线性的集合。它允许用户在任意位置对元素进行增删改查。列表的实现是基于数组或链表结构的。字典是python调用内部的散列函数,将键(key)当作参数进行转换,得到一个地址,然后将值(value)存入该地址。(这也是为什么对相同的键赋值的时候会覆盖的原因,也是字典的键必须唯一的原因。因为相同的键转换出来的地址都一样。)...

2020-12-08 11:28:24 88 1

原创 python之__slots__属性

__slots__是什么?它又有什么功能呢?在这里,我们首先得了解,在python中是默认用字典来保存对象的实例属性的,这样做的好处是允许我们在允许的任意时刻去设置新的属性,但是坏处是不能够在对象创建的时候分配固定的内存空间来保存所有的属性,造成的后果是创建很多个实例对象的时候会浪费很多的内存空间。__slots__属性就是用来解决这个问题的,它用来限制实例的属性字段,在创建大量对象的情况下可以减少内存的占用。具体的用法如下:class Test(object): __slots__ = ["na

2020-12-08 11:02:57 184 2

原创 VEX_EDR_V5之多进程多线程多任务的实现

在我们的vex机器人竞赛中,不管是手动程序还是自动程序,其中很大的一部分需要多个不同结构的动作在同一个时间启动完成,特别是在自动程序阶段,比如说在2020-2021赛季中,底盘结构和吸球结构同时运行,但是两块结构又有各自的结束条件,这样的一个情况如果在主函数main中让我们去实现,我们会发现很难实现,如果只在主函数main中编写,我们可以做到两个动作一起启动,但是却做不到每个动作达到自己满足的条件时就停止下来。如让车子往前开0.5米,并且在开的过程中吸球同时开启,吸球的结构在吸满3个球就停下来,底盘开了0.

2020-11-02 15:29:35 1308 1

原创 Django之Model操作

一、字段AutoField(Field) - int自增列,必须填入参数 primary_key=TrueBigAutoField(AutoField) - bigint自增列,必须填入参数 primary_key=TrueSmallIntegerField(IntegerField): - 小整数 -32768 ~ 32767PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, Int

2020-07-21 14:54:34 274

原创 KindEditor

1、官网地址2、官网下载:http://kindeditor.net/down.php3、文件夹说明:4、基本使用<body><div style="width: 1200px; margin: 0 auto;"> <textarea id="content"></textarea></div><script src="/static/jquery-1.12.4.js"></script><s

2020-07-03 09:22:29 966

原创 Django之ModelForm组件

ModelForm a. class Meta: model, # 对应Model的 fields=None, # 字段 exclude=None, # 排除字段 labels=None, # 提示信息 help

2020-06-29 13:08:07 149

rabbitmq-server-generic-unix-3.8.3.txt

安装rabbitmq时有时会遇到网络问题导致下载rabbitmq-server-generic-unix-3.8.3.tar.xz包失败,下载百度链接在txt文档里

2020-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除