You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中隐藏WebAPI URL并实现美观URL映射与分流

在Django中实现自定义域名的URL转发与分流需求

1. 配置Django URL路由

核心是通过路由顺序区分不同请求:将根路径、/otherapp的路由放在前面,短码路由放在最后(避免误匹配)。

在项目的urls.py中添加如下配置:

from django.urls import path
from . import views

urlpatterns = [
    # 处理根路径请求,返回自身Web服务器内容
    path('', views.home_view, name='home'),
    # 处理/otherapp路径请求,返回自身Web服务器内容
    path('otherapp/', views.otherapp_view, name='otherapp'),
    # 捕获短码参数,最后匹配避免干扰其他路由
    path('<str:short_code>/', views.redirect_to_api, name='redirect_shortcode'),
]

2. 编写视图函数处理逻辑

  • 根路径和/otherapp的视图返回自身Web服务的页面;
  • 短码视图负责拼接API服务器地址并完成重定向。

在views.py中实现:

from django.shortcuts import redirect, render

def home_view(request):
    # 返回你的首页模板或内容
    return render(request, 'home.html')

def otherapp_view(request):
    # 返回/otherapp对应的模板或内容
    return render(request, 'otherapp.html')

def redirect_to_api(request, short_code):
    # 拼接目标API服务器的完整地址
    target_api_url = f"https://my-backend-api-server.us-central1.run.app/redirectapp/redirect/{short_code}"
    # 使用301永久重定向(适合短链接长期固定指向的场景;若需临时变更用302)
    return redirect(target_api_url, permanent=True)

3. 关键注意事项

  • 路由顺序优先级:短码路由必须放在最后,否则会将/otherapp这类路径误判为短码参数;
  • 重定向类型选择:301重定向会让浏览器缓存映射关系,减少后续请求开销;若短码对应的目标地址可能频繁变更,改用302临时重定向;
  • 域名基础配置:确保www.mydomain123.com的DNS解析指向运行Django的服务器IP,同时配置好HTTPS证书(如Let's Encrypt)保证访问安全。

内容的提问来源于stack exchange,提问作者Gulzar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:13:12