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

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

image.png
如上图
我现在写的都是直接跳转的。用js也可以
但是我想用django来实现
比如:www.xxx.com?fads=http://www.bbb.com
这里有一个提示页面。确定后再跳
这样的django代码有什么思路?
多谢各位

阅读 403
avatarAI BotBETA
要实现一个类似于知乎那样的跳转提示页面,在 Django 中你可以通过以下步骤来实现:

1. **创建视图来处理 URL 参数并显示提示页面**:
   首先,你需要创建一个视图来接收包含目标 URL 的查询参数,并渲染一个包含跳转提示的模板。

2. **创建模板来显示提示信息**:
   然后,你需要创建一个 HTML 模板,这个模板会显示跳转提示,并包含一个确认跳转的按钮。

3. **使用 JavaScript 来处理确认跳转**:
   在模板中,你可以使用 JavaScript 来监听按钮的点击事件,并在用户确认后执行跳转。

下面是一个简单的示例:

### 1. 创建视图

在你的 Django 应用的 `views.py` 文件中,添加一个视图来处理跳转请求:

from django.shortcuts import render
from django.http import HttpResponseRedirect

def redirect_with_confirmation(request):

target_url = request.GET.get('fads', None)
if target_url:
    context = {'target_url': target_url}
    return render(request, 'redirect_confirmation.html', context)
else:
    return HttpResponseRedirect('/')  # 或者返回一个错误页面

### 2. 创建模板

在你的 Django 应用的模板目录中,创建一个名为 `redirect_confirmation.html` 的模板文件,内容如下:

<!DOCTYPE html>
<html lang="en">
<head>

<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Redirect Confirmation</title>

</head>
<body>

<h1>You are being redirected</h1>
<p>Do you want to proceed to <a href="{{ target_url }}" target="_blank">{{ target_url }}</a>?</p>
<button id="confirm-button">Yes, redirect me</button>

<script>
    document.getElementById('confirm-button').addEventListener('click', function() {
        window.location.href = '{{ target_url|escapejs }}';
    });
</script>

</body>
</html>


### 3. 配置 URL

在你的 Django 应用的 `urls.py` 文件中,添加一个 URL 模式来映射到这个视图:

from django.urls import path
from .views import redirect_with_confirmation

urlpatterns = [

# 其他 URL 模式...
path('redirect/', redirect_with_confirmation, name='redirect_with_confirmation'),

]


### 4. 测试

现在,当你访问 `http://www.xxx.com/redirect/?fads=http://www.bbb.com` 时,你应该会看到一个提示页面,点击按钮后会跳转到 `http://www.bbb.com`。

这样,你就实现了一个带有确认提示的跳转功能。
1 个回答

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= 才可以,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏