我正在尝试在django中编写自己的urlshortener应用程序。
我到目前为止做了这些事情:
模型
class LinkURL(models.Model):
url_hash = models.CharField(max_length=100)
url = models.CharField(max_length=3000)
clicks = models.PositiveIntegerField(default=0)
def __unicode__(self):
return self.url
和urls.py
url(r'^shorty.u/(?P<urlhash>\w+)$', include('urlshortener.urls')),
我想,我的新短网址被称为shorty.u
,并附加了一些url_hash
,因此它可以在LinkURL模型中找到真正的网址。所以它看起来像shorty.u/oijioe
。
但我被困在这里不知道如何将此shorty.u
网址重定向到真实网址,shorty.u
是否必须是注册网址? shorty.u
如何找到我的服务器,以便我可以重定向到真正的服务器?
任何提示和指导都很受欢迎。
答案 0 :(得分:2)
您可以在数据库中查找重定向地址并返回http://www.myhost.com/shorty.u/*
,而不是HttpResponse
返回HttpResponseRedirect
的视图。
https://docs.djangoproject.com/en/dev/ref/request-response/#httpresponse-objects
所以return HttpResponseRedirect("http://www.google.com")
应该将您的用户退回谷歌。
所以你的观点如下:
from django.http import HttpResponseRedirect
def myview(request, params):
# get the URL from the DB...
#....
return HttpResponseRedirect(target_url)