项目结构




运行效果
输入python init_db.py来初始化数据库
输入uvicorn app.main:app –reload来启动应用


http://localhost:8000/docs API 文档
1 创建短链接

把百度作为url,ttl是链接过期时间。3600为1小时
然后会创建一个短链

2 测试短链接重定向
我们复制短链,http://localhost:8000/PeGJze。会自动重定位去百度官网。

3 查询短链接信息
我们在Info接口输入PeGJze,能查到刚刚短链的信息和重定位地址等。

4 查看数据库
在项目根目录下有数据库文件shortlink.db,使用工具可以打开查看。
(这里因为Docker配置问题用不了MySQL,临时用SQLite代替)

5 压力测试
在终端输入locust -f locustfile.py –host=http://localhost:8000来进行压力测试。
打开localhost:8000,设置并发用户数和每秒启动用户数,然后开始测试






设计文档



Go语言适配
这里展示Go书写的一部分代码



我们运行测试脚本,看看Go语言版实现的页面是否与原来一致




一致,达到预期。
最后,打开两个服务端,通过新的test.py运行两个对比。
test.py的作用是分别向两个服务端发送发送大量请求,并对比它们的性能。

效果图示:


