在Django建立链接缩短器



我正在使用django 1.9来构建链接缩短器。我创建了一个简单的HTML页面,用户可以在其中输入长URL。我还编码了缩短此URL的方法。数据存储在数据库中,我能够向用户显示缩短的URL。

我想知道下一步要做什么。当用户访问较短的URL时会发生什么?我应该使用重定向还是其他?我对这个话题完全毫无头绪。

通常,当您提供url shortner时,调用URL后,您必须通过301 Permanently moved重定向到主URL。

def resolve_url(request,url):
    origin_url=resolve(url) # read from redis or so.
    return HttpResponseRedirect(origin_url)

编辑:使用 @Danny-Cullen提示

添加代码

您可以通过HttpResponseRedirect

导航到URL

编写中间件,而不是在每个视图中编写相同的代码,这样,如果缩短的URL在模型中,则存储您可以使用HTTPRESPONSECT将缩短的URL重定向到长URL。

class RedirectMiddleware(object):
    # Check if client IP is allowed
    def process_request(self, request):
       '''you can get the current url from request and just filter with the model and redirect to longurl with HttpResponseRedirect.'''
        return HttpResponseRedirect(full_url)

最新更新