如何使用flask生成散列共享链接

时间:2013-05-13 06:49:16

标签: hash hyperlink flask

我正在开发一个应用程序,我想实现“共享”功能,它可以将内容分享到Facebook或Twitter。每个内容都有自己的ID,我想在单击“共享”按钮时生成散列链接。比方说,如果有一篇文章A,我想把它分享给Facebook,所以我点击“分享到脸书”按钮。然后它应该生成一个url,看起来像“http // my_app_backstage_server / essay / hash(id)”,其中hash(id)不是内容的真实id,而是哈希值。我如何在Flask框架中实现它?    谢谢!

1 个答案:

答案 0 :(得分:1)

Facebook like buttontwitter只需在Facebook上创建指向您网页的链接(如果您不想为此操作生成特殊链接)。因此,您只需提供内容页面访问权限。

您可以生成随机字符串或实际哈希并将其存储在数据库中(不要忘记此值必须是唯一的):

import random
import string
from hashlib import sha512

SIMPLE_CHARS = string.ascii_letters + string.digits

def get_random_string(length=24):
    return ''.join(random.choice(SIMPLE_CHARS) for i in xrange(length))

def get_random_hash(length=24):
    hash = sha512()
    hash.update(get_random_string())
    return hash.hexdigest()[:length]

我认为你不需要同时拥有内容的id和hash访问权。

如果你想为任何分享按钮动作生成链接(我真的不明白为什么):

  1. 您必须为此链接添加路线;
  2. 您必须添加路线以创建链接;
  3. 如果您没有用户共享数据的权限,可以通过ajax创建链接并分享;
  4. 如果您拥有共享数据的用户权限,则可以按应用(ajax或仅链接)创建链接。