自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 资源 (1)
  • 收藏
  • 关注

原创 Charles抓HTTPS包

安装完之后,重新点开看一看,确认下证书状态,安装的没问题。

2025-03-24 17:30:10 583

原创 Jmeter的脚本录制

性能测试时,如果没有接口文档手写脚本,常会用脚本录制的方式去得到粗略的脚本。本文记录Jmeter脚本录制的过程。

2025-03-06 14:42:38 371

原创 windows下Jmeter的安装与使用

Binaries:已经编绎好的二进制文件,可直接执行,下载解压后就可以使用。Source:源代码文件,需要自己编绎才可以执行。

2025-03-05 18:40:06 325

原创 windows下JDK的安装

在windows上使用jmeter需要java环境,这里记录下JDK的安装过程,备忘。

2025-03-05 18:05:07 316

原创 Django 更新数据时如何绕开对本条数据的唯一性校验

有很多方法,比如可以在视图中处理,或者重写ModelSerializer的partial_update方法,剔除掉唯一性校验的字段----这样实现感觉比较啰嗦。系统中对字段做了唯一性校验,在进行更新操作时,如果不修改原数据直接保存,预期是应该正常保存的,但却提示字段的值重复。在Serializer中自定义validate处理比较合适:先判断下是不是更新操作而且字段的值没变化。如何在更新数据时避开对原始数据的校验呢?这样就能跳过对本身数据的唯一性校验了。

2024-12-28 13:02:38 195

原创 Django serializers:把ValidationError处理的更优雅

直接使用serializers做校验,虽然也能抛出自定义的错误提示,但是其信息格式是嵌套,并不适合直接反映在前端页面上。这样就能在响应json的msg中清晰的提示出错误原因了。json里的errors不是必须的,视需要决定要不要返回。开发中必不可少的会对参数做各种校验,必填、唯一等等,这个时候我们需要在校验失败时抛出友好、清晰的提示。

2024-12-28 11:36:44 464

原创 使用nvm进行node多版本管理

nvm(node.js version management),是node.js的一个版本管理工具,可以通过它可以安装和切换不同版本的node.js,解决要在一个环境中使用多个node.js 版本的问题。

2024-11-18 11:57:36 287

原创 Django makemigrations时出现TypeError: ‘module‘ object is not iterable

报错的最下面提到了我自己创建的一个应用里的urls.py,尝试着给里面加上一个列表。不知道为什么 makemigrations的时候会去检查urls。写完model进行makemigrations时出现报错。使用Python 3.11、Django 5.1.2。

2024-10-09 16:35:40 572

原创 Django makemigrations时出现ModuleNotFoundError: No module named ‘MySQLdb‘

查找资料发现说是mysqldb适用于Python2,不支持Python3;python3可以使用pymysql。写完model进行makemigrations时出现报错。使用Python 3.11、Django 5.1.2。

2024-10-09 15:57:15 812

原创 python筑基之Excel操作:openpyxl

openpyxl是python中常用于处理Excel的库,另一个是xlrd。openpyxl支持对Excel文件的读和写,xlrd仅支持读取,写入操作需要用到xlwt库;openpyxl支持.xlsx格式的文件,xlrd仅能支持.xls格式的文件(Excel 2003 及更早版本);Openpyxl能够处理Excel中的复杂功能,例如图表、公式、数据验证、条件格式化等,这使得它在处理高级Excel功能时非常有用,但在处理大Excel文件时性能上可能不如xlrd这种专门的库。

2024-08-21 16:33:53 397

原创 linux环境安装指定python版本

要部署Python项目,免不了要安装python,以下记录下安装过程,备忘。使用的是阿里云服务器,操作系统是,云服务器本身已经安装了python,但是不是需要的版本,所以需要升级一下linux 系统(Debian/Ubuntu)中现在已经提供了对多版本Python 的管理工具,。它是一个指向 /usr/bin/python 的链接,/usr/bin/python 又是一个指向实际的 Python 解释器可执行文件(通常是 Python 2.x 或 Python 3.x 中的一个)链接。

2024-07-18 11:22:52 849

原创 allure_pytest:AttributeError: ‘str‘ object has no attribute ‘iter_parents‘

踩坑记录。

2024-07-17 19:06:14 844 2

原创 linux下Jenkins的安装部署

用docker安装Jenkins非常方便快捷,但是最近国内的docker镜像源都不好用了,这里回顾一下最原始的Jenkins安装方式。

2024-07-17 11:58:31 716

原创 linux下JDK的安装

安装部署java开发的代码都需要java环境,这里记录下linux下JDK的安装过程,仅供学习参考。

2024-07-17 10:29:58 267

原创 瑞数5逆向过程(纯补环境)

声明:本文仅作学习交流,请遵守法律法规,不要恶意爬取网站。

2024-03-11 21:07:32 4943 12

原创 无限debugger的几种处理方式

不少网站会在代码中加入‘debugger’,使你F12时一直卡在debugger,这种措施会让新手朋友束手无策。js中创建debugger的方式有很多,基础的形式有:①直接创建debuggerdebugger;②通过eval创建debugger(在虚拟机中创建)③通过Function创建debugger(在虚拟机中创建)而我们遇到的debugger,多数是在这些形式的基础上,或配合定时器,或加上循环,甚至经过ob混淆。。。

2024-03-07 16:54:04 2114 1

原创 今日头条 _signature逆向分析

声明:本文仅作学习交流,请遵守法律法规,不要恶意爬取网站。网址:'aHR0cHM6Ly93d3cudG91dGlhby5jb20v'接口:'aHR0cHM6Ly93d3cudG91dGlhby5jb20vaG90LWV2ZW50L2hvdC1ib2FyZC8='本文提到的接口是头条的今日热榜接口,观察接口发现其中有一个加密参数 _signature,以下分析此参数的生成过程。

2024-03-06 23:30:32 2209 3

原创 京东联盟h5st(3.1)逆向分析

声明:本文仅作学习交流,请遵守法律法规,不要恶意爬取网站。网址:'aHR0cHM6Ly91bmlvbi5qZC5jb20vcHJvTWFuYWdlci9pbmRleA=='h5st是京东系的反爬方式,即在接口中加上一个叫h5st的参数,h5st加密有不同的版本。本文提到的网站不是京东网站,是和京东有关联的一个网站,也有h5st参数,是3.1版本。

2024-02-26 13:04:53 4042 8

原创 使用miniconda管理Python环境

之前经常使用pipenv管理虚拟环境,但是有一个问题就是代码给别人使用的时候,别人使用的Python版本和自己的不一致时,安装依赖包的时候会有问题。所以现在使用miniconda来管理虚拟环境,不仅小巧方便,还能为每个环境指定不同的Python解释器版本。

2024-02-17 12:54:24 486

原创 gdzwfw某省公共资源交易平台逆向学习

hook住之后你就跟着堆栈挨个找吧,我找的是头!此网站采用请求头反爬,难点是请求头中几个参数是如何生成的(别问为什么知道是请求头,一个一个试的。搜索这几个请求头可以发现是找不到的,由此可以判断JS是经过混淆的,或者参数名是在JS运行中生成的。最难的就是如何定位到这几个参数是在JS的哪个位置产生的了,这比较依赖经验,全靠大胆猜测,小心求证。debug的时候你会发现,X-Dgi-Req-Signature确实是这样的。后面的就不用说了,把这个也扣出来。能拿到数据,说明获取到的请求头没毛病。

2024-01-24 20:58:08 1601

原创 JS逆向中常见的加密算法

说明:本文不是算法的科普,仅是学习过程中的总结,旨在比较各算法的加密过程以及密文长度,以便逆向过程中遇到加密数据能帮助推测是使用了何种加密。有错漏之处烦请指正,仅供初学者参考。

2024-01-19 00:10:39 1990

原创 逆向使用webpack打包的网站

webpack 是 JavaScript 应用程序的模块打包器,可以把开发中的所有资源(图片、js文件、css文件等)都看成模块,通过loader(加载器)和 plugins (插件)对资源进行处理,打包成符合生产环境部署的前端资源。所有的资源都是通过 JavaScript 渲染出来的。最基础最简单的样式:一个自执行方法,方法内部是加载器,入参是要加载的模块;加载器中明显的内容是类似 e[t].call(a.exports, a, a.exports, n);入参一般是数组或对象,里面是各种函数。

2024-01-17 17:27:57 1258

原创 UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 244: illegal multibyte sequence

前言:这个是使用execjs加载js文件时出现的报错,参考解决方法之前先看看和你遇见的问题是否一样。有些人百度解决问题上来一通操作,也不看对不对症,解决不了就骂人我也是服辣。Python库中的这个subprocess.py文件,有个方法的encoding参数默认值是None,改成'utf-8'一般遇见编码问题先看看代码里写没写encoding='utf-8',没写的话写加上试试。当然,我遇到的问题跟这个没关系。(点文件名进入,搜索encoding=none)方法一简单粗暴,一劳永逸。

2024-01-16 17:49:57 604

原创 selenium clear()无效的解决办法

做自动化时,在往输入框中send_keys前往往需要先清空一下这个输入框里的内容,避免输入框原本有内容或默认值,导致最终输入的结果不是预期的内容。如果后面还要send_keys,直接只全选即可。但用久了你就会发现clear()并非对所有的输入框都好用,即使它是一个input元素。也可以用双击+删除,但是要注意双击也是为了能选中内容,但有时候双击不能达到全选的效果。这里不探究到底为什么clear()会无效,只写几种能达到clear效果的方法。也有的说是因为clear()本身是只对form中的表单元素有效。

2023-05-30 15:03:31 2343

原创 selenium drag_and_drop不生效的一种解决办法

做自动化时发现用drag_and_drop模拟拖拽没效果,页面上只能看到元素source闪了一下,但是并没有拖拽到元素target上(推测可能是我用系统页面在拖拽时有个JS效果,但是drag_and_drop模拟拖拽的时候执行太快没能触发JS,所以没有把这两个元素拖拽到一起)。方法2是我看到的另一种方法,虽然试验了下没效果,但说不定对其他的拖拽场景是有效的。试验了一下,在执行move_by_offset动作的时候能触发JS的效果,只不过位移的xy不准确,触发不了另一个JS,只要计算好要偏移的位置就好了。

2023-03-17 18:02:52 1541

原创 unittest使用简述

包括setup(每个测试用例执行前执行一次)、setupClass(测试用例类执行前执行一次)、tearDown(每个测试用例执行后执行一次)、tearDownClass(测试用例类执行后执行一次)。unittest提供一个基类TestCase,用于创建测试用例类,类中的每个以test开头的方法即是一个测试用例,每个测试用例是一个独立的测试单元。需要使用测试用例的加载器,可以通过指定测试用例类或者测试用例类所在的路径来加载用例。实现一些方法用来开展测试前需要准备的工作,或者测试完成后需要进行的清理工作。..

2022-08-03 23:21:29 323

原创 flask踩坑记录:sqlalchemy使用paginate出现Object of type Pagination is not JSON serializable

在做分页接口时出现了Object of type Pagination is not JSON serializable,因为JSON的JSONEncoder不认识Pagination对象。对象不能序列化的问题,在这篇文章中有讲过:TypeError: Object of type XXX is not JSON serializable为了让接口输出的json结果更美观,把页面的信息放在同一个key下,在序列化之前先进行一次处理。用的是装饰器来实现:from functools import w

2022-03-12 18:57:30 1912

原创 flask 把日志输出到数据库中

我们使用不同的Handler可以把日志输出到不同的地方,比如使用StreamHandler把日志输出到控制台上;使用FileHandler把日志输出到文件里。那我们同样可以把日志输出到数据库中,只需要自己实现一个Handler日志输出到数据库DatabaseLogHandler的实现:import sysimport loggingimport pymysqlimport tracebackclass DatabaseLogHandler(logging.Handler):

2022-03-12 11:56:33 2600

原创 flask踩坑记录:sqlalchemy出现DetachedInstanceError的解决方法

最近写flask遇到了sqlalchemy抛出DetachedInstanceError异常sqlalchemy.orm.exc.DetachedInstanceError: Instance <StockMonitor at 0x2139afa1508> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me

2022-03-12 11:29:17 4235 2

原创 利用pytesseract进行图片文字识别

pytesseract是基于Python的OCR工具, 底层使用的是Google的Tesseract-OCR 引擎,支持识别图片中的文字,支持jpeg, png, gif, bmp, tiff等图片格式。安装pip install pytesseract 使用这里只简单介绍识别图中文字并输出字符串,有兴趣的同学可以自行探索更多的方法。from PIL import Imagefrom pytesseract import *img = Image.open('test.png

2022-02-18 14:05:17 2751

转载 pip安装mysqlclient报错的解决

Windows 环境下安装python包经常会有各种环境方面的问题及报错。 最近在python36/37下升级安装mysqlclient包时产生了下面的错误,不论是百度还是Stack Overflow上查找都没有真正的解决方案,于是写文章与大家一起分享下这类报错的解决方法。报错信息:Building wheels for collected packages: mysqlclient Running setup.py bdist_wheel for mysqlclient ... error

2022-02-16 15:38:30 6258

原创 python中的枚举类应用

开发中经常会用到枚举,比如定义一些状态码,那该如何实现呢?最先想到的应该是字典:status = { "OK": (0, "成功"), "ERROR": (-1, "失败")}使用时这么取用:data = { "code": status.get("OK")[0], "msg": status.get("OK")[1]}这样实现,用起来不方便,写起来也不够优雅。 我们可以用枚举类(Enum)来更好的实现它。from enum import E

2022-02-15 15:47:35 556

原创 TypeError: Object of type XXX is not JSON serializable

JSON在处理dict转json时,有时会因为字典中键值对的字段类型不是JSON序列化内置的类型导致序列化错误。如下面的例子:处理Decimal类型时出现TypeError: Object of type Decimal is not JSON serializable。此时在序列化时指明处理的规则即可,我们需要重写json.JSONEncoder的default方法。...

2021-10-08 10:52:25 689

转载 pandas:数据筛选的8个操作

文章来源于 公众号Python数据科学的文章pandas 筛选数据的 8 个骚操作,是个很不错的系列,感兴趣的同学可以移步去学习。数据分析最常用到的就是查询筛选,按各种条件、各种维度以及组合挑出我们想要的数据,以方便我们分析挖掘,这里总结了日常查询和筛选常用的操作。本文采用sklearn的boston数据举例介绍。from sklearn import datasetsimport pandas as pdboston = datasets.load_boston()df = p.

2021-08-23 18:21:15 49887 2

转载 Django启动报错:‘SyntaxError: Generator expression must be parenthesized’

错误信息:Traceback (most recent call last): File "manage.py", line 22, in <module> execute_from_command_line(sys.argv) File "E:\python\learning_log\ll_env\lib\site-packages\django\core\management\__init__.py", line 363, in execute_from_command...

2021-06-08 11:01:54 945

原创 flask踩坑记录:flask的响应结果总是按首字母排序

开发时发现接口响应的结果总是按字段的首字母进行排序,看起来十分难受。这是Flask默认配置造成的,想要响应的结果不按首字母排序,只需修改一个配置即可。未修改配置前(按首字母排序):修改配置后(保持字典定义时的顺序):app.config['JSON_SORT_KEYS'] = False这样看着就顺眼多了但是Flask文档中不建议这么做。默认情况下,Flask将以排序键的方式序列化JSON对象。这样做是为了确保独立于字典的哈希种子,返回值将保持一致,以免浪费外部HTTP缓存

2021-05-06 13:58:15 603 1

原创 flask踩坑记录:flask_migrate迁移数据库出现 1050 “Table ‘xxxx‘ already exists“

模型新增字段后,用flask-sqlalchemy迁移数据库的时候总是出现"Table 'xxxx' already exists"的错误提示这里记录下解决的过程:从报错推测,问题的原因应该是迁移文件中的语句是cerate表,但是实际想要的只是增加几个字段为什么每次生成的迁移文件都是创建表,而不是新增字段呢?看到一个文章中提到是数据库引擎的问题:https://blog.youkuaiyun.com/qq_38187188/article/details/105825964最初 SQLALCHE

2021-04-23 12:46:26 1682 2

转载 IaaS、PaaS、SaaS

越来越多的软件,开始采用云服务。云服务只是一个统称,可以分成三大类。IaaS:Infrastructure-as-a-service,基础设施即服务 PaaS:Platform-as-a-service,平台即服务 SaaS:Software-as-a-service,软件即服务它们有什么区别呢?IBM 的软件架构师 Albert Barron 曾经使用披萨作为比喻,解释这个问题。David Ng 进一步引申,让它变得更准确易懂。请设想你是一个餐饮业者,打算做披萨生意:你可以从

2021-04-19 15:30:22 144

原创 flask踩坑记录:flask_migrate生成迁移文件时总是缺少新增加的模型信息

最近学习flask,进行数据库迁移的时候,发现使用了生成迁移文件的命令后,生成的新迁移文件总是只有原来的model部分python manager.py db migrate百度一圈之后才在一个文章里看到有提到一句注意事项:在生成迁移文件前,要把数据库模型导入到manage.py文件里,然后才能找得到......然后重新生成迁移文件就正常了行吧......记录一下这个小小的点.....只是奇怪以前也没导入过,为什么生成的新迁移文件里会有原来的模型信息...

2021-04-14 09:51:14 590

原创 flask踩坑记录:flask_migrate迁移数据库出现 Target database is not up to date

在使用flask_migrate做数据库迁移时出现 Target database is not up to date 的报错这是数据库记录的版本号和迁移文件中记录的版本号不一致导致的找到最新的迁移文件,把版本号更新到数据库中然后再重新生成迁移文件即可...

2021-04-13 22:36:09 514

web_autoTest_frame.rar

关键字驱动的,基于selenium+unittest的python web自动化框架

2021-05-14

空空如也

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

TA关注的人

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