gpt4 book ai didi

django - 如何在django中的chatterbot View 中向终点发出POST请求?

转载 作者:行者123 更新时间:2023-12-02 04:23:58 24 4
gpt4 key购买 nike

我是django的新手!

我想在我的网站中创建一个chatterbot chatbot,为此我需要在 View 中发出POST请求。我已经创建了一个模型。我为此使用mysql数据库。

我已经访问了github和其他网站,终于得到了一个代码,但是它没有POST请求

这是我的models.py:

class Response(models.Model):
statement = models.ForeignKey(
'Statement',
related_name='in_response_to',
on_delete=False
)

response = models.ForeignKey(
'Statement',
related_name='+',
on_delete=False
)

unique_together = (('statement', 'response'),)

occurrence = models.PositiveIntegerField(default=0)

def __str__(self):
s = self.statement.text if len(self.statement.text) <= 20 else self.statement.text[:17] + '...'
s += ' => '
s += self.response.text if len(self.response.text) <= 40 else self.response.text[:37] + '...'
return s

这是我需要在views.py中发出POST请求的地方
def post(self, request, *args, **kwargs):

response = Response.objects.all()

if request.is_ajax():
input_data = json.loads(request.read().decode('utf-8'))
else:
input_data = json.loads(request.body.decode('utf-8'))

self.validate(input_data)

response_data = self.chatterbot.get_response(input_data)

return JsonResponse(response, response_data, status=200)

def get(self, request, *args, **kwargs):
data = {
'detail': 'You should make a POST request to this endpoint.',
'name': self.chatterbot.name,
'recent_statements': self._serialize_recent_statements()
}

# Return a method not allowed response
return JsonResponse(data, status=405)

最佳答案

如果您使用的是django rest框架(DRF),建议您先执行QuickStart,然后再执行Serialization。 DRF有一个非常好的文档,在序列化中,您可以通过定义以下内容找到如何发出POST请求:

  • 模型
  • 序列化器
  • Api
  • 路由器
  • 关于django - 如何在django中的chatterbot View 中向终点发出POST请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56625297/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com