对于传统数据库而言,编写 URL 缩短器似乎相当简单,但有几个值得注意的例外:
def save_new_url(request):
url = StoredUrl(url=request.POST['url'])
url.save()
url.short_link = base62(url.id)
url.save()
return direct_to_template('mytemplate.html', { 'link': url.short_link })
上面示例的唯一问题是缺乏对已知异常的支持,这些 URL 应该保留给系统/站点使用,例如account
或admin
.
那么,如何为像 MongoDB 这样的 NoSQL 数据库提供 URL 缩短服务,它使用十六进制值作为其“行”的键?似乎大多数 URL 缩短器都致力于将数字缩短[a-zA-Z0-9]
为字符集。由于我没有可用的数字,如何缩短存储在 MongoDB 表中的 URL?