我正在使用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在模型中,则存储您可以使用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)