如何在Django中生成可分享的链接?(类似于pastebin链接)

0 投票
4 回答
2224 浏览
提问于 2025-04-16 09:38

我想在我的django应用中增加一个功能,让用户可以创建一些内容(不需要注册或创建账户),然后生成一个特定内容的链接,用户可以把这个链接分享给别人。点击这个链接后,用户可以回到他们创建的内容页面。

简单来说,我希望这个功能类似于pastebin网站——用户可以得到一个pastebin链接,然后分享给其他人(例如:http://pastebin.com/XjEJvSJp)。

我不太确定生成这种链接的最佳方法是什么——有没有人有什么想法?

谢谢!

4 个回答

1

通常,这些东西的组成很简单,就是一个(可能是随机的,也可能是按顺序的)标记,再加上内容,这些内容存储在数据库里,然后根据需要提供出来。

1

如果你不介意你的网址变得稍微长一些,可以看看uuid这个模块。这个模块可以确保生成的ID是唯一的。

1

你可以用任何方式来创建这些链接,只要每个链接都是独一无二的。例如,可以对内容进行MD5加密,然后使用生成的十六进制字符串的前8个字符。

一个简单的模型可以是:

class Permalink(models.Model):
    key = models.CharField(primary_key = True, max_length = 8)
    refersTo = models.ForeignKey(MyContentModel, unique = True)

你也可以把 refersTo 设为一个属性,这样它会自动分配一个独特的键(就像上面说的那样)。

然后你需要一个匹配的URL:

url("^permalink/(?P<key>[a-f0-9]{8})$",
    "view.that.redirects.to.permalink.refersTo"),

你明白这个意思了吧...

撰写回答