san*_*aet 1 javascript python django
我只是想知道Django是否有办法从一堆文本中检测URL然后自动缩短它们.我知道我可以使用urlize来检测网址,但我不确定我是否可以使用点滴或其他东西来缩短链接.
用javascript而不是python来完成这个任务会更好吗?如果是这样的话我该怎么办呢?
对于bit.ly如果你只是想缩短网址,它很简单:
首先创建一个帐户,然后访问http://bitly.com/a/your_api_key以获取您的API密钥.
发送请求到API 的缩短方法,结果是缩短的URL:
from urllib import urlencode
from urllib2 import urlopen
ACCESS_KEY = 'blahblah'
long_url = 'http://www.example.com/foo/bar/zoo/hello/'
endpoint = 'https://api-ssl.bitly.com/v3/shorten?access_token={0}&longUrl={1}&format=txt'
req = urlencode(endpoint.format(ACCESS_KEY, long_url))
short_url = urlopen(req).read()
Run Code Online (Sandbox Code Playgroud)
您可以将其包装到模板标记中:
@register.simple_tag
def bitlyfy(the_url):
endpoint = 'https://api-ssl.bitly.com/v3/shorten?access_token={0}&longUrl={1}&format=txt'
req = urlencode(endpoint.format(settings.ACCESS_KEY, the_url))
return urlopen(req).read()
Run Code Online (Sandbox Code Playgroud)
然后在你的模板中:
{% bitlyfy "http://www.google.com" %}
注意:标记中的位置参数是django 1.4的一个特性
如果你想要bit.ly API的所有功能,首先阅读dev.bitly.com/get_started.html上的文档,然后下载官方的python客户端.
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |