在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
相关产品推荐
相关产品推荐

