python - 将 Django 视图转换为休息服务
问题描述
我有一个很久以前创建的应用程序,现在客户希望在不破坏现有功能的情况下将其一些视图公开为 API,以便他们可以使用 REST 工具直接使用 API 来查看报告。
有没有更简单的方法,我可以将我的函数转换为 REST 视图。
PS - 我在这里缩短了代码以保持问题简单,但事实上,它在实际应用程序中非常复杂。
例如。网址:-
`path('/users', views.show_user_details, name='users'),`
看法
def show_user_details(request, user_id):
users = User.objects.all()
return render(request, "Users.html", {"users":users})
在 REST 视图中,我希望它转换其输入和输出,以便可以使用相同的 url(或稍加修改)访问它,而无需太多更新现有视图。
`path('rest/users', views.show_user_details, name='users'),` #-- I am ok to add new url like this, but without much change in existing view .
def show_user_details(request, user_id):
users = User.objects.all()
return JsonResponse({"users":users})
解决方案
由于正常的网站访问仍然是一个GET
请求并且GET
只是您通常的 REST 操作之一,因此您可能需要准备自己的独立 API 端点。看看django-rest-framework,你可能会对这项任务感到宾至如归。
推荐阅读
- jquery - 如何从 ASP Classic 获得对 jQuery 请求的响应
- google-ads-api - 如何通过api获取Google Ads中的组合表?
- arrays - 基于文本文件内容jenkins管道迭代并行循环动态阶段
- linux - 如何让多个命令在atd中顺序执行
- python - 流式数据流作业从工作人员抛出 gRPC 错误
- jquery - 如果高度大于 X,jQuery While 循环会增加 Div 宽度
- python - Facebook 广告 API 对少数帐户失败,而不是对所有帐户
- datadog - 无法查看 statsd 发送的有关数据狗的指标
- android - 如何从 Sqlite 数据库中获取数据并将其放入 Flutter/Dart 的下拉菜单中?
- ios - 是否可以向应用程序用户 iOS 发送更新通知