一个基于 Python
和 Sqlite
的短网址服务业务逻辑层代码
特点
- 精简
- 安全(不会出现网址被覆盖错误)
- 高效:在保证安全的前提下写入速度稳定在
1k条/1.7s
保证日常使用 - 大容量:初始配置下(网址调配比=0.5)最多能插入2k万余条网址
- 可拓展
使用
代码包括两个主要文件: 实现类 ShortURL.py
以及配置文件 config.json
。首先先来看看配置文件
{
"config": {
"blacklist": [
"baidu.com"
],
"baseURL": "https://cirno.me/",
"sqliteAddress": "./shortLink.db",
"shift_possibility": 0.5,
"support_url_pattern": "http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+"
},
"count": 0
}
其中 blackList
为网站黑名单,如果尝试为其中网址服务,程序会返回 ILLEGAL
字符串;baseURL
为网站根目录,务必注意格式;SqliteAddress
指向 Sqlite
数据库的位置,首次使用会自己创建; shift_possibility
指网址调配比,数值越大网址缩短效果越好(体现在更短的网址上),但是可能会造成运行效率的减小,所以得按具体需求来; support_url_pattern
是检测网址合规的正则表达式,默认匹配带协议前缀的所有合法网址。
配置完成后就能调用 ShortURL.py
进行业务逻辑的实现了,类中主要提供4个公用方法:
import ShortURL
func = ShortURL.ShortURL()
# 缩短网址
result = func.add("https://cirno.me")
# 数据库内网址总数
print(func.len())
# 原网址和短网址的相互转换(自动检测)
result = func.get("https://cirno.me")
# 关闭会话
func.close()