如何在django中生成可共享的链接? (类似于pastebin链接)
问题描述:
我想添加到我的django应用程序的一个功能是用户可以创建一些内容(无需注册/创建帐户),然后生成用户可以使用的特定于内容的链接与他人分享。点击链接会让用户回到他们创建的内容。如何在django中生成可共享的链接? (类似于pastebin链接)
基本上,我想的行为是类似像引擎收录网站 - 在用户得到他们可以与其他人共享一个引擎收录的链接(例如:http://pastebin.com/XjEJvSJp)
我不知道什么是最好的方式是产生这些类型的链接 - 有没有人有任何想法?
谢谢!
答
只要每个链接都是唯一的,您可以以任何您想要的方式创建这些链接。例如,获取内容的MD5并使用十六进制摘要的前8个字符。
为一个简单的模型可能是:
class Permalink(models.Model):
key = models.CharField(primary_key = True, max_length = 8)
refersTo = models.ForeignKey(MyContentModel, unique = True)
你也可以将refersTo
(如上所述),可自动分配一个唯一的关键属性。
,你需要一个匹配网址:
url("^permalink/(?P<key>[a-f0-9]{8})$",
"view.that.redirects.to.permalink.refersTo"),
你的想法...
答
通常,所有由它组成的是一个(可能是随机的,可能是连续的)令牌,加上存储在数据库中的内容,然后按需提供。
答
基本上你只需要一个视图,存储数据和显示来看。
例如存储与:
server.com/objects/save
,然后储存新的模式后,它可以与
server.com/objects/[id]
哪里[id]
是当你保存你所创建的模型的ID到达。
这不需要用户登录 - 它也可以为匿名用户工作。
这太好了,谢谢! – user256604 2011-01-10 20:31:22