- 博客(86)
- 资源 (8)
- 收藏
- 关注
原创 Python 爬虫工具 BeautifulSoup
简单来说,Beautiful Soup 是 python 的一个库,最主要的功能是从网页抓取数据。官方解释如下:Beautiful Soup 提供一些简单的、python 式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。参考:遍历文档树,也被称为导航文档树,是指在一个文档对象模型(DOM)中按照特定的方法和规则来遍历和浏览其中的节点。
2025-05-29 17:28:01
467
原创 Python 爬虫入门
参考:https://juejin.cn/post/7494635102174036003网络爬虫(Web Crawler)是一种自动获取网页内容的程序。它可以访问网站,抓取页面内容,并从中提取有价值的数据。在信息爆炸的时代,爬虫技术可以帮助我们高效地收集、整理和分析互联网上的海量数据。为了应对不同的爬取需求和反爬挑战,Python生态系统提供了多种爬虫相关的库。库名特点适用场景Requests简单易用的HTTP库基础网页获取HTML/XML解析器静态网页内容提取Scrapy。
2025-05-26 11:21:05
1161
原创 FastAPI 支持文件上传
requests 库以 POST 方式上传多个文件,关键在于使用 files 参数,以元组的形式列出要上传的文件,如 (‘files’, open(‘file1’, ‘rb’)) 和 (‘files’, open(‘file2’, ‘rb’))。定义文件支持的大小 MAX_FILE_SIZE(一般使用配置文件),然后使用 file.read 方法读取文件 content,然后获取 len, 最后与 MAX_FILE_SIZE 进行对比,超出就抛出错误。这样可以有效避免服务器内存溢出。额外 meta 信息。
2025-05-23 16:49:16
1073
原创 Python 获取文件类型 mimetype
url:可以是文件名或 URL 的字符串。strict:一个布尔值,默认为True,表示仅使用 IANA 注册的官方 MIME 类型。如果设置为 False,则还包括一些常用的非标准 MIM E类型。type:文件的 MIME 类型,如果无法猜测则返回 None。encoding:文件的编码格式,如果无法确定则返回 None。Web开发:在Web服务器中,mimetypes.guess_type用于确定文件的MIME类型,从而设置正确的Content-Type头信息。
2025-05-23 10:57:28
743
原创 FastAPI 支持文件下载
File() 适用于小文件,而 UploadFile() 则更适合处理大文件。对于文件下载,FastAPI 提供了 FileResponse 和 StreamingResponse 两种方式。FileResponse 适合小文件,而 StreamingResponse 适合大文件,因为它可以分块返回文件内容。使用 StreamingResponse 可以分块下载文件,这样不会占用太多服务器资源,特别适用于大文件的下载。使用 FileResponse 可以直接下载文件,而无需在内存中加载整个文件。
2025-05-21 09:29:52
647
原创 ReportLab 导出 PDF(图文表格)
当字符串包含中文、日文等全角字符时,len() 1个汉字与1个英文字母都被计算为1个单位长度,但实际上它们在显示时占据的宽度是不同的!参考:https://dev59.com/uF7Va4cB1Zd3GeqPKod0。
2025-04-16 10:57:58
1012
原创 ReportLab 导出 PDF(页面布局)
Flowable 是一个抽象的基类,用于绘制事物,一个实例知道它的大小,并在它自己的坐标系中绘制(这需要基 API 在调用 Flowable.draw方法时提供一个绝对坐标系)。例如,段落使用段落样式,页面使用页面模板,目的是让数百个有数千页的文件可以按照不同的样式规格重新格式化,只需在一个包含段落样式和页面布局规格的共享文件中修改几行即可。参数是可调用的,它们的签名应该是 def XXX(canvas,document),其中canvas和document是正在绘制的画布和文档。然而,它具有欺骗性,
2025-04-16 10:54:12
1199
原创 ReportLab 导出 PDF(文档创建)
ReportLab 导出 PDF(文档创建)ReportLab 导出 PDF(页面布局)ReportLab 导出 PDF(图文表格)参考:https://www.cnblogs.com/windfic/p/17157841.htmlhttps://dev59.com/uF7Va4cB1Zd3GeqPKod0https://www.jb51.net/article/270782.htmhttps://www.osgeo.cn/python-tutorial/pdf-reportlab.htmlht
2025-04-15 17:33:25
892
原创 Linux Firewalld 防火墙
firewalld 防火墙是 Centos7 (Ubuntu 也支持)系统默认的防火墙管理工具,取代了之前的 iptables 防火墙,也是工作在网络层,属于包过滤防火墙。
2025-04-14 11:24:27
871
原创 python 日志管理
logging 模块中定义的函数和类为应用程序和库的开发实现了一个灵活的事件日志系统。Python logging 的配置由四个部分组成:Logger、Handlers、Formatter、Filter。
2025-04-10 16:45:17
659
1
原创 SQLAlchemy 支持特殊字符
参考:https://blog.csdn.net/AggressionStorm/article/details/100040588不区分大小写,这个在注册用户名和邮箱的时候就要使用。区分大小写,如果用户名和邮箱用这个就会照成不良后果。compare strings by the binary value of each character in the string 将字符串每个字符串用二进制数据编译存储,区分大小写,而且可以存二进制的内容。
2025-03-28 16:27:04
1151
原创 fastapi 实践(三)Swagger Docs
这个文档是自动生成的,基于 OpenAPI 规范,支持 Swagger UI 和 ReDoc 两种交互式界面。FastAPI 提供了内置的交互式 API 文档,使开发者能够轻松了解和测试 API 的各个端点。通过 FastAPI 的交互式 API 文档,开发者能够更轻松地理解和使用 API,提高开发效率。在运行 FastAPI 应用时,Uvicorn 同时启动了交互式 API 文档服务。从报错,就很明显,是因为 swagger 的接口被内部权限拦截了。下载 fastapi-cdn-host包。
2025-03-21 10:09:41
781
原创 pydantic 实践(二)数据校验
pydantic 本身提供了上述基本类型的数据检查方法,但是,除此之外,我们也可以使用 validator 和 config 方法来实现更为复杂的数据类型定义以及检查。
2025-03-12 14:23:33
446
原创 fastapi 实践(二)异常捕获
创建自定义异常类,并在全局或局部异常处理器中处理它们。status_code=500 # 或其他适当的HTTP状态码。
2025-03-12 11:10:43
664
原创 dify 智能体实践
参考:https://blog.csdn.net/xiangxueerfei/article/details/144856290。参考:https://www.onetts.com/tutorial/ollama-api-calling-tutorial。参考:https://github.com/langgenius/dify-docs/issues/433。基础 URL 填入 http://192.168.17.100:11434/若是 react 推理模式开这一个即可。启动 worker 服务。
2025-02-06 13:30:26
2072
原创 Ollama 安装部署
linux 参考:https://blog.csdn.net/zhu7478848/article/details/140514582。在搜索结果中,你会看到 Qwen 的不同版本,如 Qwen 2.5 和 Qwen 2 等,这里我们选择安装 Qwen 2.5 版本。参考:https://blog.csdn.net/zengmingen/article/details/143687404。在任务管理器中,点击“进程”选项卡,找到名为“ollama.exe”和“Ollama.exe”的进程。
2025-02-05 17:30:46
4527
原创 dify 本地源码启动
进入 conda 环境# 依赖服务cd docker# 后端cd api# 启动 API 服务# 启动 worker 服务# 前端cd web# 启动前端# 访问。
2025-02-05 10:13:57
5526
6
原创 python 枚举(enum)
python 的枚举是使用类来实现的,类属性是枚举名称,属性值对应枚举值。Enum 的使用有如下特点:枚举类不允许定义相同枚举名称,但不同的枚举名称可以有相同的值,后者相当于前者的别名。枚举值不能被修改,枚举值一旦被修改,就会引发 AttributeError 异常。两个不同的枚举类,枚举名称和枚举值即便相同,在比较时也是不相等的。枚举类的一个枚举有 name(标签)和 value(枚举值)两个属性,使用枚举值时,务必通过 value 获取枚举值。
2024-11-06 18:32:03
470
原创 Python 函数类型
闭包(Closure)是指一个函数内部定义的函数,这个内部函数可以引用外部函数的变量。闭包不仅可以捕获这些变量,还可以在外部函数返回后继续使用它们。闭包常用于需要封装一些状态或行为的场景中。包含内嵌函数的函数。定义在外部函数内部并且引用外部函数的变量。内嵌函数引用的、定义在外部函数中的变量。一个函数可以返回另一个函数,返回的函数可以访问到外部函数的变量。def make_counter(): # 外部函数count = 0 # 自由变量def counter(): # 内嵌函数。
2024-11-06 17:52:47
1101
原创 SQLAlchemy 介绍与实践
SQLAlchemy 是一个 ORM 框架。SQLAlchemy 是一个用于 Python 的 SQL 工具和对象关系映射(ORM)库。它允许你通过 Python 代码来与关系型数据库交互,而不必直接编写SQL语句。简单介绍一下对象关系映射吧,对象关系映射(英语:Object Relational Mapping,简称 ORM,或O/RM,或O/R mapping),是一种程序设计技术, 用于实现面向对象编程语言里不同类型系统的数据之间的转换。
2024-11-05 16:23:28
3219
原创 多模型流式输出合并的协程实例
1. 使用 fastapi api 的形式处理任务,每个任务使用协程的方式,处理多个流式输出。该方式支持多个 fastapi 并发请求。2. 开启多个线程执行任务,每个任务使用协程的方式,处理多个流式输出。
2024-10-22 17:07:56
509
原创 python 安装包 site-packages
当我们通过 pip 或其他方式安装一个 Python 包时,这些包的文件就会被复制到 site-packages 文件夹下。site-packages 文件夹通常位于 Python 的安装目录下的 Lib 文件夹内。具体的路径会根据你使用的操作系统和 Python 版本的不同而有所不同。
2024-09-27 15:35:09
3598
原创 SSH 服务配置与 Network error: Connection refused 解决
Ubuntu 虚拟机 IP 为 192.168.17.101(SSH 启动时,使用该 IP 地址),主机网络适配器 VMnet8 IP 地址同样为 192.168.17.101。此情况下,关闭 Ubuntu 虚拟机,在 Windows 终端 ping 192.168.17.101,显示可以 ping 通,但是 ssh 失败。首先关闭 Ubuntu 虚拟机,然后在 Windows 终端 ping Ubuntu 虚拟机,如果通了,则说明 IP 冲突了。将仅允许用户使用 SSH 后面追加admin用户。
2024-09-26 10:46:40
2307
原创 VMware 虚拟机配置固定 IP
参考:https://blog.csdn.net/laosun12/article/details/102733608。参考:https://blog.csdn.net/jsryin/article/details/123304582。打开【控制面板】->【网络和Internet】-> 【网络和共享中心】,点击【更改适配器选项】,打开网络配置。电脑右下角打开【网络信号】->【网络和 Internet 设置】->【更改适配器选项】,打开网络配置。点击适配器 VMnet8,修改 IP 和 DNS 相关配置。
2024-09-25 16:38:30
5801
原创 python time datetime timedelta
时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型格式化的时间字符串(Format String):“1999-12-06”%y 两位数的年份表示(00-99)%Y 四位数的年份表示(000-9999)%m 月份(01-12)%d 月内中的一天(0-31)%H 24小时制小时数(0-23)%I 12小时制小时数(01-12)%M 分钟数(00=59)
2024-06-13 18:14:33
782
原创 RBAC 模型梳理
权限是资源的集合,这里的资源指的是软件中所有的内容,包括模块、菜单、页面、字段、操作功能(增删改查)等等。页面权限操作权限和数据权限。
2024-06-07 11:19:48
11103
原创 python 实现用户登录
特点和使用:Token 可以是任何格式的数据字符串,不仅限于JWT。Token 可能仅作为引用存储在服务器上,服务器通过该引用来获取存储的状态信息。经统一的身份验证后,Token 用来管理用户会话。可以通过 HTTP headers、URL 参数或请求体传输。
2024-04-25 11:25:17
1348
1
原创 NISEdit 制作安装包
使用 NIS Edit 向导模式新建脚本时,需要依赖改编译器。NIS Edit 会自动加载该编译器。下载地址:https://nsis.sourceforge.io/Download下载并安装 NSIS 编译器。
2024-04-23 17:08:15
1798
原创 python 队列
Queue.qsize() 返回队列的大小Queue.empty() 如果队列为空,返回True,反之FalseQueue.full() 如果队列满了,返回True,反之False,Queue.full 与 maxsize 大小对应Queue.get([block[, timeout]])获取队列,timeout等待时间Queue.get_nowait() 相当于Queue.get(False),非阻塞方法Queue.put(item) 写入队列,timeout等待时间。
2024-02-20 11:12:53
11332
4
原创 python 多线程
python 多线程是指在同一个程序中同时运行多个线程,每个线程都可以独立执行不同的任务。python 中的多线程实现可以通过 threading 模块来实现。
2024-01-29 10:18:41
1461
原创 python sqlite3 线程池封装
然后,在执行数据库操作之前,我们使用 lock.acquire() 获取锁,确保只有一个线程可以执行数据库查询。因为在python操作某个数据库的数据的线程必须和创建数据库的线程是同一个线程,不然就会出现异常。check_same_thread=False的作用: python sqlite3的线程模式默认串行, 如果需要再多线程中用一个句柄,需要加此参数,否则将出现上述错误。这种方式可以确保在并发访问sqlite3数据库时,每次只有一个线程可以执行数据库操作,避免了数据竞争和不一致性的问题。
2024-01-24 14:44:20
1749
原创 Git 操作 fetch and push
首先需要从主库 fork 代码到用户空间下。fork =》拉取代码,应该拉取用户的代码吧首先查看 git remote 信息添加主库 upstream。(是否需要为主库添加 upstream 并且推到远程。禁止 push。
2024-01-19 12:29:46
732
原创 http 返回状态
100 Continue:服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。101 Switching Protocols :服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。
2023-12-15 10:23:25
742
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人