首页 > 解决方案 > 在另一个 Python 脚本中使用 POST 方法创建 Django 模型实例

问题描述

所以我有一个 django 应用程序,其中包含一些模型,我可以通过管理员和面向客户端的站点进行操作,例如添加实例等。但是,我想尝试一些与此不同的东西。我有一个 Python 脚本,它使用基于这些相同模型的 POST 和 JSON 对象,我希望能够运行它,通过端口连接到我的 django 应用程序服务器并创建我的模型的新实例(基本上不使用 Admin 或我的客户页面)。有什么想法我该怎么做?

标签: pythondjangodjango-modelsserver

解决方案


如果脚本的作用很简单,那么最简单的方法就是创建一个接收 JSON、处理它并返回一个JsonResponse.

例如

def create_object(request):
    if request.method == 'POST':
        data = json.loads(request.body)
        # Do something with the data - e.g. create a model instance
        MyModel.objects.create(**data)
        return JsonResponse({'status': 'created'})

或者,如果脚本做了更复杂的事情,或者如果您打算将来扩展它,您可能最好使用Django Rest Framework之类的东西通过 REST API 公开您的网站。

使用 Django Rest Framework,您可以使用 ModelViewSet 和 ModelSerializer 等组件在模型周围相当快速地构建基于 CRUD 的 API,最少的代码通过 REST 公开它们。


推荐阅读