Django Post API通过邮递员

时间:2019-12-14 03:48:17

标签: django django-rest-viewsets

**您好,当我尝试点击邮递员的post api时,我收到了API的响应,但未收到邮递员的请求 当我打印请求时显示但不显示数据 我附上了邮递员的屏幕截图 ** enter image description here

from django.shortcuts import render
from django.http import HttpResponse
from django.core.mail import send_mail
from django.views.decorators.csrf import csrf_exempt
# Create your views here.

@csrf_exempt
def email(request):
  print(request)
  subject = request.POST.get('subject', 'hello')
  body = request.POST.get('body', 'very bad')
  senderEmail = request.POST.get('senderEmail', 'my_email@gmail.com') 
  send_mail(subject, body, 'sender@gmail.com', [senderEmail], fail_silently=False)
  return HttpResponse("Email Send.")

2 个答案:

答案 0 :(得分:0)

我不确定您的项目的上下文是什么,但是您可以使用序列化程序并编写类似以下内容的内容:return Response(serializer.initial_data, status=status.HTTP_200_OK)serializer.initial_data将是您最初发送的数据,并将显示在Postman响应框中。希望这可以帮助。 (您可以了解有关Django here的序列化程序的更多信息。)

答案 1 :(得分:0)

在邮递员中选择表单数据,而不是原始数据。 enter image description here

在python代码中,您可以如下更改代码:

@api_view(['POST'])
@csrf_exempt
def email(request):
    formDataReceved = request.POST
    subjectReceived = formDataReceved['subject'].strip()
    bodyReceived = formDataReceved['body'].strip()
    senderEmailReceived = formDataReceved['senderEmail'].strip()
    send_mail(subjectReceived, bodyReceived, 'sender@gmail.com', [senderEmailReceived], fail_silently=False)
    return HttpResponse("Email Send.")