- 博客(51)
- 收藏
- 关注
原创 【基础理解篇】科研必会的Streamlit完全指南:从零开始构建交互式Web应用
Streamlit为数据科学家和Python开发者提供了一个强大而简洁的工具来构建交互式Web应用。从简单的数据展示到复杂的机器学习仪表板,Streamlit都能胜任。通过本文的学习,你已经掌握了Streamlit的核心概念和实用技巧。建议在实际项目中多加练习,探索更多高级功能,如自定义组件、多页面应用等。记住,最好的学习方式就是动手实践,不断尝试新的想法和功能。Streamlit的社区非常活跃,官方文档也很详细,遇到问题时可以随时查阅。
2025-08-30 19:20:37
1130
原创 【工程实践篇】科研必会的Streamlit完全指南:构建多页面应用
Streamlit的多页面应用功能让开发者能够创建更复杂、更有组织的Web应用程序。相比单页面应用,多页面应用具有更好的用户体验和代码组织结构,特别适合构建完整的数据分析平台、管理系统或工具集合。从Streamlit 1.10.0版本开始,多页面应用成为了官方支持的核心功能,无需额外的配置或复杂的路由设置。
2025-08-30 11:39:33
589
原创 【机制理解篇】科研必会的Streamlit完全指南:with语句的设计逻辑深度解析
在Streamlit中,with语句的设计是一个非常巧妙的架构决策,它体现了Python上下文管理器(Context Manager)的强大功能,同时也展现了Streamlit在用户体验设计上的深度思考。理解with语句的设计逻辑,有助于我们更好地掌握Streamlit的内在机制。# ✅ 好的做法with col1:st.write("内容1")with col2:st.write("内容2")# ❌ 避免过度嵌套st.write("过度嵌套")
2025-08-30 11:27:14
858
原创 SQLAlchemy 全方位指南:从入门到精通
使用Table对象来描述数据库中的表结构。# 假设我们使用 mysql_engine# 定义一个 users 表# 创建表 (如果不存在)# metadata.create_all() 会检查所有与此 metadata 关联的表,并在数据库中创建它们print("'users' 表已创建或已存在。")ORM 的强大之处在于能够轻松处理表之间的关系,如一对多、多对多等。[15][16]一对多关系示例:一个用户可以有多条地址记录。# 'addresses' 属性将关联到 Address 对象列表。
2025-07-29 17:05:35
1795
原创 深入浅出 Python Asynchronous I/O:从 asyncio 入门到实战
想象一下你在厨房做饭,需要同时烧水、切菜和炒菜。同步 (Synchronous):你先把水壶放到灶上,然后就一直盯着它,直到水烧开。之后,你再去切菜,切完所有菜后,最后才开始炒菜。在这个过程中,当你在等待水烧开时,你什么也做不了,时间被白白浪费。异步 (Asynchronous):你把水壶放到灶上后,就不管它了,直接去切菜。切菜的间隙,你抽空看一眼水开了没。水一开,你就去处理。这样,等待水烧开的时间被你用来切菜,整个做饭的效率大大提高。[3]代码的世界也是如此。
2025-07-10 21:43:32
1179
原创 Python日志终极指南:深入探索logging日志管理模块
logging模块是 Python 开发者的强大盟友。掌握它,你的代码将变得更加健壮、可维护和易于监控。从开始,满足简单需求。深入理解四大组件(Logger, Handler, Formatter, Filter),实现灵活控制。在项目中采用dictConfig,实现配置与代码分离。善用日志分割,有效管理日志文件。[14]遵循库与应用的日志最佳实践,编写专业的 Python 代码。现在,是时候在你的下一个项目中,用优雅的logging彻底取代杂乱的print()了。
2025-07-06 14:35:17
1143
1
原创 深入理解Python的clang.index包:构建和分析C语言AST的完整指南
Abstract Syntax Tree(抽象语法树,简称AST)是编译器前端分析源代码的核心数据结构。对于C/C++代码分析、静态检查工具开发、代码重构等应用场景,能够programmatically地构建和遍历AST是一项重要技能。Python的包提供了一个强大而灵活的接口,让我们能够利用LLVM Clang编译器的解析能力来分析C/C++代码。本文将从基础概念开始,逐步深入讲解包的使用方法,帮助读者掌握C语言AST分析的核心技术。是Python绑定到LLVM Clang编译器libclang库的接口。
2025-06-25 15:01:36
1275
原创 python中typing模块学习笔记
当你的字典有固定的字符串键和不同类型的值时(例如处理 JSON 数据),TypedDict非常有用。[10][11]name: stremail: Optional[str] # email 键是可选的。
2025-06-24 16:48:39
1203
原创 【持续更新中】常用docker服务部署指北
docker是个好东西,小树莓派上也能快速部署,方便管理环境。用这篇笔记来记录下各种软件的快速部署方式。
2025-04-12 09:29:46
323
原创 Windows10 ssh无输出 sshd服务启动失败 1067报错 公钥无法认证链接 解决办法
在里面启动管理员的powershell,然后依次运行如下三个脚本即可。重新打开新的powershell就可以正常使用了。最近突然发现windows 10的ssh服务好像挂了,在系统设置-可选功能那里反复重新安装还是报错。然后睡了一觉突然发现ssh又变成输入命令以后无输出的形式,连vscode也没法链接远程服务器了。按理来说这样就可以正常启动sshd和ssh了。如果连不上,看一下防火墙哪里的端口开放设置。只能说windows逆天更新时不时就会闹幺蛾子,不知道这次的问题又是哪次更新导致的,差评。
2025-04-10 23:52:04
755
原创 CodeQL CLI使用及错误排查
最近尝试用CodeQL分析linux kernel,但是在初学阶段遇到一些配置和使用上的问题,多方查找以后逐个尝试解决,最后记录一下,文中使用codeql版本是1.20。的过程中,如果打算自行编写ql文件,初学很容易出现“ERROR: could not resolve module cpp”之类的报错。CodeQL分析的基本原理是对项目进行源码分析,建立CodeQL数据库,然后通过一系列类似SQL的查找来挖掘程序漏洞。才需要使用元数据,所以如果不在ql文件头部注明元数据的话,也可以使用。
2025-03-29 16:51:55
1811
原创 C/C++函数定义正则表达式提取
最近在研究从文本角度对c/cpp代码进行提取,比如从单一文件中以尽量简单的方法提取函数片段等等。核心函数会返回一个字典,键是函数名,值是这个函数的统计信息。
2025-03-27 16:59:38
266
原创 python中包管理、import关键字与__init__.py的关系
如何构建模块化的python项目?如何优雅使用import、from、__init__.py进行模块管理?希望这篇文章可以使你python技巧更上一层楼!
2025-03-20 15:57:49
989
原创 关于前后端分离导致数据加载体感不佳的一点思考
vue编写前端页面 加载表格使用后端接口,这就使得每次点开网站时相当于请求两次。反观php实现方案,只需要请求一次服务器就好了,响应速度提高。那么对于vue这种前后端分离的设计,怎么解决呢?
2024-09-01 10:35:46
567
原创 记一次折腾后台nodejs服务的经历
当时租了一年的云服务器,现在快到期了,所以打算迁移到自己的服务器上。不过由于自己的服务器用了https、网站服务是部署在docker里的、并且端口不能随便开放,折腾了好半天,终于算是能用了(尽管可能不那么优雅hh)。因此写一篇博客记录一下踩坑历史。
2024-07-23 17:05:40
1443
原创 Linux Ubuntu系统python的matplotlib报错findfont: Font family ‘Times New Roman‘ not found.的解决方法
findfont: Generic family 'sans-serif' not found because none of the following families were found: Times New Roman报错
2024-06-02 19:28:21
2548
4
原创 从零开始Apache2配置php/mysql/phpmyadmin服务并支持网页访问
最近打算再做一版服务器状态查看的dashboard,采用“子服务器主动向主服务器推送自己的状态”的方案。一种方案是用php写,Apache作为后台服务器。简单写一下构建过程。
2023-11-11 11:07:45
1699
2
原创 Ubuntu服务器安装Nvidia显卡驱动各类失败问题的解决方案集合
给实验室服务器安装显卡驱动,总是遇到各种各样的问题。故而专门开一个文章记录一下遇到的各类问题。
2023-09-11 19:35:03
4025
原创 Unity资源无法下载 反复提示需同意Terms of Service和EULA 同意后无效的解决方案
这篇文章主要讲述了unity中点击Download时弹出窗口“Accepting Terms of Service and EULA” You need to accept Asset Store Terms of Service and EULA before you can download/update any 仍无法下载资源的问题的解决方案。
2023-09-04 13:30:12
5122
11
原创 Duplicati 2 磁盘空间不足的解决方案
Duplicati是一种文件备份解决方案。为了解决由于临时文件区空间不足导致的无法备份问题,需要添加高级选项并指定tempdir。
2023-08-28 09:57:27
556
原创 模糊测试基本介绍
覆盖率指引的模糊测试方法获得覆盖率的四种追踪方式1使用编译器向基本块边缘插桩,可以准确地插桩并易于优化,但需要源码已知。静态二进制重写,不需要源码,仍在研究,因为静态代码插桩准确性难以保证,并且优化能力有限。这些限制条件会影响代码率信息的质量与准确性,以及二进制重写的表现。动态二进制插桩,不需要源码,可以容易、准确插入代码,但是动态翻译二进制的开销可能大到不能接受。硬件辅助追踪,不需要源码,利用内置的硬件追踪扩展,在运行时直接获取控制执行流信息。
2023-06-22 11:03:12
912
原创 vscode中 rust-analyzer插件报错 failed to find any projects in [AbsPathBuf 或者FetchWorkspaceError的解决办法
然后在"rust-analyzer.linkedProjects"里面写上项目根目录的Cargo.toml的绝对地址即可。一般来说,如果vscode打开的是rust项目的根目录(即目录下有。vscode侧边栏打开rust-analyzer插件,进入扩展设置。文件),rust-analyzer插件可以识别到项目。进入“首选项:工作区设置”,在上面的输入栏里输入。如果没有自动更新,可以重启下vscode。
2023-04-19 10:53:08
11341
9
原创 服务器开放单一外部端口共用ssh和https 使用DNS认证设置免费https证书并手动续期
最近玩linux服务器遇到了新的问题,即一个对外只开放1个端口的服务器,想用这个端口同时提供ssh服务、网页服务
2023-03-10 16:29:02
642
原创 XCTF dice_game [Writeup]
非常简单的一道缓冲溢出pwn题,顺便结合了下python调用libc函数与srand设置初始化种子的知识点,read函数的bug弄得太明显了。类似的srand漏洞也有一些,比如如果知道使用的是常见的的设置方法、且rand的结果和对应的第几次调用已知的话,可以通过遍历时间的方法确定后续的所有随机结果。
2023-01-26 10:32:53
272
原创 站点数据收集-Scrapy使用笔记
网站数据收集方法有很多,比如最基础的requests,简单几行就可以获取网页信息。使用selenium模拟网页点击可以绕过很多反爬策略,编写思路也不同于其他的方法。用scrapy框架来做的话可以清楚地进行目标拆分,并利用内置的线程池可以非常高效地获取信息。本文以scrapy为目标,总结基础的使用方法,以供后续复习。............
2022-07-27 15:27:45
506
原创 python ast.literal_eval函数反序列化报错分析
前言最近接了个爬虫的活,顺便接触一下python的scrapy库,爬取网站、数据持久化确实很方便。写好文件以后只需要scrapy crawl <project name> -L ERROR -O result.jl就可以将数据按行保存,处理数据时也只需要简单的for line in file就行。按行处理数据时,使用ast.literal_eval(line)就可以将上述数据转化为字典。不过在实际测试的时候出现了很多奇怪的问题,这里做以总结。错误汇总ValueError(msg + f’
2022-04-17 14:41:51
6100
原创 Syzkaller最后一步运行./bin/syz-manager 无法启动虚拟机 failed to create instance: failed to read from qemu: EOF
背景最近读syzkaller的源码,顺带跑了一下syzkaller。在参照github README逐步执行时最后出现下图问题:但是参考教程1,用qemu-xxx的一长串命令可以启动,并且ssh也能连接成功。解决方案关闭虚拟机,在VMware上方导航栏选择"虚拟机" =>“设置”,调整虚拟化选项:这里全选了三个虚拟化选项,然后开启虚拟机,可以正常运行2补充说明在制作系统镜像1时,在Enable required config options这一步,除了要把那几个参数设定为y以外,还
2021-12-01 11:35:02
1747
原创 个性化域名邮箱
背景已经在阿里买了域名,前几天用Cloudflare的时候瞥见有申请邮件转发功能,然后点了申请一直都没给批复。后来想了想干脆还是自己整吧。(非常简单)前置工作需要有自己实名认证的域名。不需要有服务器,更不用备案啥的。为什么个人身份要申请域名邮箱已经买了域名,客观上可以配置MX解析对外使用自己的域名做邮箱,更有定制化、更专业一些可以在一定程度上避免信息泄露,比如常规的qq邮箱会泄露qq号(不过最近发现qq也可以设定英文名别名hhh)简单方便,不需要自己配置邮箱服务器域名邮箱里设置好自动转发
2021-11-09 13:53:52
907
原创 Connection failed: Activation of network connection failed 的解决方案
背景VMware16装了一台Ubuntu20.04,用了桥接模式单独联网,然后连接到同局域网下宿主机的代理。之前一直是能用的,今天开机后突然出现Connection failed: Activation of network connection failed的问题,网络连接图标也变成了空心的“品”字形,中间三个小黑点。(忘截图了)解决方案先在ubuntu里尝试了sudo systemctl restart NetworkManager.service重启网络,无果。重启ubuntu若干次,无果。
2021-08-16 13:27:02
15290
5
原创 pwntools中使用tmux和gdb attach时Waiting for debugger无限等待的解决方案
前言请先阅读pwntools官方issues,确保其他人的回答仍无法解决问题:docker gdb attach #1140背景使用ssh连接centos服务器,用着c01dkit/pwndocker的pwndocker,开了tmux的情况下,使用context.terminal = ['tmux','splitw','-h']和gdb.attach(xxxx)出现Waiting for debugger,然后无限等待,即便gdb正常attach到了程序上。截图如下:正常情况下,如果debugg
2021-07-19 00:44:24
11494
12
原创 [ERROR] Could not find a terminal binary to use. Set context.terminal to your terminal.问题的解决方案
背景使用ssh连接远程服务器做pwn题,由于服务器上没有装gnome,所以在执行gdb.attach的时候会报错:pwnlib.exception.PwnlibException: Could not find a terminal binary to use. Set context.terminal to your terminal.解决方案是在代码的gdb.attach前添加一行代码,指定使用哪个terminal。context.terminal = ['tmux','splitw','
2021-07-15 14:06:45
4005
原创 Flask学习笔记
最近要把工程项目部署到服务器上。由于项目是用python3写的,所以大致学习了一下python的Flask架构,以此构建网络应用。初步体验了一下,只需要一两分钟就可以编写出简单的网站。也可以直接看官网资料学习。
2021-05-19 22:11:13
448
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅