扫描二维码 上传二维码
选择防红平台类型,避免链接被拦截
选择允许访问的平台类型

如何创建和解析短链接?

根据业务需求绘制流程图(DAG,有向无环图)。评估现有功能,识别缺失的功能点,并设计新的功能。



前端设计



#### 功能1:收集长链接并生成短链接
DAG流程
1. 收集长URL:通过在index.html中设计一个表单,用户提交表单后,使用requests.form获取表单内容。
2. 验证长URL有效性:通过checkurl(longurl)函数验证长URL的有效性。
3. 生成短URL:通过createshorturl(longurl)函数生成短URL。
4. 传递至后端服务器:将长短URL关系记录到后端数据库。

def checkurl(longurl):
# 验证长URL是否有效
return True # 示例返回值

def createshorturl(longurl):
# 根据规则生成短URL
return "shorturl"

def linkshort_long(shorturl, longurl):
import datetime
date = datetime.datetime.now().strftime("%Y-%m-%d")
dic = {"shorturl": shorturl, "date": date, "longurl": longurl, "createtype": "build"}
return dic


#### 功能2:收集短链接并执行跳转
DAG流程
1. 收集短URL:通过在index.html中设计一个表单,用户提交表单后,使用requests.form获取表单内容。
2. 验证短URL存在性:通过checkssurl(shorturl)函数验证短URL的存在性。
3. 跳转至长URL:通过jumpurl(shorturl)函数执行跳转。

def checkssurl(shorturl):
# 验证短URL是否存在
return True # 示例返回值

def jumpurl(shorturl):
# 执行跳转逻辑
pass


#### 功能3:请求短链接访问信息并展示
DAG流程
1. 记录访问时间:在跳转过程中记录短URL的访问时间。
2. 发起请求:通过requests.post()函数请求访问信息。
3. 展示访问信息:解析JSON数据并展示访问时间。

def get_stats(shorturl):
# 获取访问统计数据
pass


后端设计



#### 数据库设计
- 短链接表:键为短URL,值为包含长URL、访问时间和创建时间的字典。
- 长链接表:键为长URL,值为短URL,用于快速查找短URL。

import redis

r = redis.Redis(host='localhost', port=6379, db=0)

def save_short_url(shorturl, longurl):
r.set(shorturl, json.dumps({"longurl": longurl, "access_times": []}))

<img src="https://suo.run/uploads/20251015/6.png" alt="" class="img-fluid" />

def update_access_time(shorturl):
current_time = datetime.datetime.now().strftime("%Y-%m-%d")
r.lpush(shorturl + "_access_times", current_time)


以上代码展示了如何在前端和后端之间交互以实现短链接的服务。通过合理的设计和优化,确保系统的效率和可扩展性。

---



前端设计一

#### 功能1:收集长链接,生成短链接
DAG过程
1. 收集长URL:通过在index.html中设计一个表单,用户提交表单后,使用requests.form获取表单内容。
2. 验证长URL有效性:通过checkurl(longurl)函数验证长URL的有效性。
3. 生成短URL:通过createshorturl(longurl)函数生成短URL。
4. 传递至后端服务器:将长短URL关系记录到后端数据库。

def checkurl(longurl):
# 验证长URL是否有效
return True # 示例返回值

def createshorturl(longurl):
# 根据规则生成短URL
return "shorturl"

def linkshort_long(shorturl, longurl):
import datetime
date = datetime.datetime.now().strftime("%Y-%m-%d")
dic = {"shorturl": shorturl, "date": date, "longurl": longurl, "createtype": "build"}
return dic


前端设计二

#### DAG流程
1. 收集短URL:通过在index.html中设计一个表单,用户提交表单后,使用requests.form获取表单内容。
2. 验证短URL存在性:通过checkssurl(shorturl)函数验证短URL的存在性。
3. 跳转至长URL:通过jumpurl(shorturl)函数执行跳转。



```python