V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
python30
V2EX  ›  Python

用 django 写一个跳转到第三方网址的代码。提示如知乎的这种跳转? 有什么思路吗?

  •  
  •   python30 · 24 天前 · 1593 次点击
    https://link.zhihu.com/?target=https%3A//www.sxhm.com/online.html
    如上

    我现在写的都是直接跳转的。用 js 也可以
    但是我想用 django 来实现
    比如:www.xxx.com?fads=http://www.bbb.com
    这里有一个提示页面。确定后再跳
    这样的 django 代码有什么思路?
    多谢各位
    6 条回复    2024-11-26 00:08:02 +08:00
    ltaoo1o
        1
    ltaoo1o  
       24 天前
    刚刚看了下知乎,点击的链接就是 https://link.zhihu.com/?target=https%3A//www.sxhm.com/online.html 这种格式了。
    用 django 就是解析用户提交的内容,如果存在超链接,就替换成你自己的网站地址+原始超链接。
    elevioux
        2
    elevioux  
       24 天前 via Android
    第一时间想到的是输出文章内容的时候正则匹配一下,替换成站内地址。优化一下就是用户提交的时候提取,保存一份副本。
    DeWjjj
        3
    DeWjjj  
       24 天前
    django 里面不是有自定义路由匹配么?就给一个关键字例如?transfer 就做一个页面就行了。渲染后面的字符串进网页就行了,服务端渲染页面就行了。
    python30
        4
    python30  
    OP
       24 天前
    def tiaozhuan(request, weburl):
    return render(request, 'info/tiaozhuan.html', context ={'weburl':weburl})

    path(r'tiaozhuan/<path:weburl>/', tiaozhuan, name='tiaozhuan'),

    解决了,就用上面。虽然不是很完美,好像没法用 /?target=http://www.bbb.com 这样的,只能用:/target/http://www.bbb.com, django 的路由里不用写?=等?
    我在路由里用:path(r'tiaozhuan/?target=<path:weburl>', tiaozhuan, name='tiaozhuan'), 就不行,只有去掉:?target= 才可以,
    ltaoo1o
        6
    ltaoo1o  
       24 天前
    @python30 你的问题其实是,如何在请求路径匹配 /?target 时,渲染指定 tiaozhuan.html ?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1054 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 19:49 · PVG 03:49 · LAX 11:49 · JFK 14:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.