Внутренняя ошибка сервера при подключении к базе данных Django - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть функция подключения, созданная для записи данных в мою базу данных. Вот функция подключения из views.py


def _parse_body(body):
    body_unicode = body.decode("utf-8")
    return json.loads(body_unicode)

@csrf_exempt
def connect(request):
    body = _parse_body(request.body)
    connection_id = body['connectionId']
    connect = Connection(connection_id=connection_id)
    connect.save()
    return JsonResponse({"message":"connect successfully"}, status=200)

И модели

from django.db import models

# Create your models here.

class Connection(models.Model):
    connection_id = models.CharField(max_length=255)

class ChatMessage(models.Model):
    username = models.CharField(max_length=50)
    message = models.CharField(max_length=400)
    timestamp = models.CharField(max_length=100)

Тестирование API подключения на почтальоне и с помощью curl возвращает 500 внутреннюю ошибку сервера, например: тестирование соединения на почтальоне

Вот также трассировка стека: трассировка стека

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

Скорее всего, JSON, который вы отправляете на сервер, неправильно отформатирован. И поскольку это неверный JSON, вы получаете ошибку в строке body = _parse_body(request.body)

Ваш локон должен выглядеть следующим образом

curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" -X POST localhost:8000/websocket/connect
0 голосов
/ 10 февраля 2020

Вы, вероятно, отправляете сообщение вроде:

{connectionId: "something"}

Когда вместо этого следует заключить имя свойства connectionId в двойные кавычки, чтобы оно было действительным JSON сообщением:

{"connectionId": "something"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...