使用frp进行内网穿透示例

示例1:常见内网穿透常见tcp内网穿透使用,使用服务器进行请求转发公网ip服务器配置frps.ini内容如下:[common] bind_port = 7000 token = 123123 allow_ports = 17001-17020配置参数解释如下:bind_port: frp服务监听端口,需防火墙放开token:配置后服务端和客户端需保持一致,非必须,配置后更安全allow_ports:允许绑定的转发端口号,需防火墙放开,非必须,配置后更安全内网机器配置frpc.ini内容如下:[common] # server_addr = xxx.xxx.xxx.xxx server_a...

Linux,工具,技术 2023-08-07 PM 78℃ 0条

mysql数据库逻辑删除场景加唯一索引的几种方案

背景假设有个数据库表product,字段分别为id,name, 实现数据库逻辑删除,可通过新增字段delete_status来实现,delete_status默认为0,删除某条记录只需要设置delete_status=1即可。在这个前提下想增加name唯一索引,确保不会有重复的name值。如果只是设置name为唯一索引,在用户删除name='a'的数据后又新建了name='a'的数据就会导致索引冲突;而如果将name和delete_status同时设置为唯一索引,又会出现用户在第二次删除name='a'时造成索引冲突。(因为此时数据库已经存在一条name='a', delete_stat...

数据库 2023-08-03 AM 80℃ 0条

typecho博客更换域名后替换站内原域名链接

Typecho博客更换域名后,原来博客文章中链接的本站图片和文章地址都无法正常访问,需要将原来链接的域名替换为新域名。解决方法如下:查询有多少文章需要替换链接SELECT cid, text FROM typecho_contents WHERE text LIKE '%your_old_domain.com%';批量更新为新链接UPDATE typecho_contents SET text = REPLACE(text, 'your_old_domain.com', 'your_new_domain.com') WHERE text LIKE '%your_old_domain...

2023-08-02 PM 77℃ 0条

Python在Flask中设置多个静态目录的方式

在Flask中,可以指定多个静态目录,让这些目录中的文件都可以直接访问。假设项目目录结果如下:your_project/ app.py public_files/ file1.txt file2.txt private_files/ sensitive_file.txt static/ ... (其他静态文件) 设置除了static的其他目录为静态目录,Flask代码如下:from flask import Flask, send_from_directory app = Flask(__n...

Python,Flask 2023-08-02 PM 93℃ 0条

windows下python使用requests爬取网页乱码问题

背景在windows下使用python的requests库和re爬取网页并提取js文件,出现提取到的js文件名乱码的问题。示例代码如下:import re import requests res = requests.get('https://xxx.xxx.com/xxx.html') re.findall(r'<script\ssrc="(\S+.js)"></script>', res.text)解决方法使用res.content.decode('utf-8')替换res.text。修改后代码如下:import re import r...

Python,bug记录 2023-07-28 PM 55℃ 0条

python使用requests库下载大文件占用内存高

背景在项目中使用Python的requests库下载大文件时,出现下载一半程序中断的问题,测试发现是内存占用过高导致解决requests.get()增加参数stream=True原下载方式req = requests.get(url_file) with open(path, 'wb') as f: f.write(req.content)改进后req = requests.get(url_file, stream=True) with open(path, 'wb') as f: for chuck in req.iter_content(chunk_size=512)...

Python,bug记录 2023-07-25 PM 86℃ 0条

python为封装的api工具类添加批次号功能

背景现在有一个Python封装的api接口工具类,每个业务操作需要调用多个api接口,现在想将一个业务请求内的多次调用使用同一个批次号,便于后续日志记录与统计分析。以下示例中,假设TestOld和TestNew为改造前后的接口工具类;x,y,z为测试的a和b函数为两个不同的api接口;handle_ts为一个业务操作;t1和t2为测试函数改造前class TestOld: def __init__(self, x, y, z): self.x = x self.y = y self.z = z def a(self, a)...

Python 2023-07-10 PM 63℃ 0条

python解析app安装包apk内基本信息

方法使用pyaxmlparser库pip install pyaxmlparserfrom pyaxmlparser import APK apk = APK('/foo/bar.apk') print(apk.package) print(apk.version_name) print(apk.version_code) print(apk.icon_info) print(apk.icon_data) print(apk.application)解析库对比pyaxmlparser推荐,经测试支持解析`AndroidManifest.xml`和`resources.arsc`内数据...

Python 2023-07-10 PM 81℃ 0条