在另一个Python脚本中使用POST方法创建Django模型实例

时间:2018-08-24 17:35:36

标签: python django django-models server

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

1 个答案:

答案 0 :(得分:2)

如果脚本的作用很简单,那么创建一个接收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'})

或者,如果脚本执行更复杂的操作或打算将来扩展它,则最好使用REST API(例如Django Rest Framework)来公开您的网站。

借助Django Rest Framework,您可以使用ModelViewSetModelSerializer之类的组件在模型周围快速构建基于CRUD的API,并以最少的代码在REST上公开它们。