django - urlshortener app

时间:2014-08-30 11:23:57

标签: python django

我正在尝试在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如何找到我的服务器,以便我可以重定向到真正的服务器?

任何提示和指导都很受欢迎。

1 个答案:

答案 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)