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

在Django应用中使用原生JavaScript调用Python函数的方法

Django前端调用后端Python函数实现方案

前端JavaScript运行在用户本地浏览器,Python代码运行在服务端,二者无法直接调用,需要通过HTTP接口完成交互,你可以按以下步骤实现:

  • 改造views.py,封装可对外访问的视图
# 先导入需要的依赖
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt

# 你原有的业务函数
def hello():
    return "Hello world"

# 新增对外接口视图
@csrf_exempt
def hello_api(request):
    res = hello()
    return HttpResponse(res)
  • 配置路由(urls.py),给接口绑定访问路径
    在你应用对应的urls.py文件中新增路由规则:
from django.urls import path
from . import views

urlpatterns = [
    # 保留你原有其他路由
    path('api/get_hello/', views.hello_api, name='get_hello'),
]
  • 修改前端JS代码,用原生fetch发起请求获取返回内容
document.getElementById('button').addEventListener('click', printHello);

async function printHello() {
    // 发起请求调用后端接口
    const response = await fetch('/api/get_hello/');
    // 读取返回的文本内容
    const text = await response.text();
    alert(text);
    // 此处替换为你创建div展示文本的逻辑即可
}

注意:如果你的Django应用配置了子路径,需要把fetch中的路径调整为对应完整路径,比如站点运行在http://127.0.0.1:8000/myapp/,则路径写为/myapp/api/get_hello/

如果不需要使用POST请求,你可以删除views.py中的@csrf_exempt装饰器,默认GET请求不会触发CSRF校验,安全性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:15:10