【问题标题】:Is it okay to call django functions through an API?可以通过 API 调用 django 函数吗?
【发布时间】:2020-11-05 18:58:42
【问题描述】:

我正在构建一个项目,现在我是 VueJS 的新手,我正在学习它。我发现您可以使用 axios 在 API 上发出 HTTP 请求。为了让我的项目更简单,我可以通过 axios 在我的 views.py 上调用函数吗?

就像我在 urls.py 中获取 url 以在我的后端执行一些功能。

没事吧?我的意思是安全和最佳实践。等等

谢谢

【问题讨论】:

  • 不确定你的意思。您不能通过前端 javascript 调用 Python 代码。
  • 你能给出一些示例代码来展示你的想法吗?
  • 您好,感谢您的回答,我认为可以通过前端javascript调用python代码。现在我将通过 api 端点调用函数。

标签: django vue.js django-rest-framework


【解决方案1】:

没问题,这就是 Django 的用途:

urls.py:

urlpatterns = [
    ...
    path('my_view_function/', views.my_view_function, name='my_view_function'),
    ...
]

views.py:

def my_view_function(request):

    # unpack data:
    my_value = request.GET['my_key']

    # some logic:
    ...

    # pack response:
    response = json.dumps({
        'some_other_key' : 'some_other_value'
    })

    return HttpResponse(response)

【讨论】:

  • 谢谢!这就是我的意思。
【解决方案2】:

另一个选项是你在 django 中使用信号,前段时间我使用信号,当创建没有字段的新记录时,它将使用你想要的算法完成,例如订单并自动放置代码,当你想要更准时的东西时,你只能通过指向你的模型来应用它。

@receiver(pre_save, sender=MyModel)
def my_handler(sender, **kwargs):
    ...

my_handler 函数只会在 MyModel 的实例被保存时被调用。

我把文档留在这里以备您查看

https://docs.djangoproject.com/en/3.1/topics/signals/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-21
    • 2020-10-03
    • 2018-03-31
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 2018-06-06
    相关资源
    最近更新 更多