python - 使用 chrome POSTMAN 测试 http POST 时,它在 django 中不起作用

标签 python django postman

我使用 Django 1.9.7 & Python 3.5

我实现了创建用户机制并尝试使用 POSTMAN(chrome 应用程序)进行测试,但它不起作用并且显示如下内容:

Forbidden (CSRF cookie not set.): /timeline/user/create/

这是代码:

urls.py

from django.conf.urls import url
From. import views

app_name = 'timeline'
urlpatterns = [
    # ex) /
    url(r'^$', views.timeline_view, name='timeline_view'),

    # ex) /user/create
    url(r'^user/(?P<method>create)/$', views.user_view, name='user_view'),
]

views.py

from django.contrib.auth import authenticate, login, logout
from django.shortcuts import render, HttpResponse

from timeline.models import *


def timeline_view(request):
    return HttpResponse('hello world')


def user_view(request, method):
    if method == 'create' and request.method == 'POST':
        print("hi")
        username = request.POST.get('username')
        username = request.POST.get('username')
        user = User.objects.create_user(username, password=password)
        user.first_name = request.POST.get('name','')
        user.save()
        profile = UserProfile()
        profile.user = user
        profile.save()
        return HttpResponse('create success')
    else:
        return HttpResponse('bad request', status=400)

postman : enter image description here

我试过了 Django CSRF Cookie Not Set但我认为这篇文章适用于过去的版本。

最佳答案

对于测试,我使用了@csrf_exempt 装饰器。

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def user_view(request, method):
    ...

现在您应该可以在没有 csrf cookie 的情况下调用此函数。

(我上次尝试时,我使用的是 django 1.8.7)

来源: https://docs.djangoproject.com/en/1.9/ref/csrf/#edge-cases

关于python - 使用 chrome POSTMAN 测试 http POST 时,它在 django 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38305269/

相关文章:

python - 如何检查模块是否可用于导入?

django - 测试 session 变量

javascript - 如何为 Azure 表存储 REST 请求生成 SharedKeyLite

spring-boot - 通过 postman 发送二维字节数组(多个文件)作为多部分请求

tomcat - 无法使用 POSTMAN 将数据发布到 Apache tomcat 服务器

python - 以编程方式从云端硬盘共享链接下载内容

python - 安排作业以最小化变化的算法

python - easy_install ReviewBoard [Errno 104] 连接被同行重置

python - 如何针对 Django 和 Python 版本优化我的 Travis CI 矩阵?

python - 如何在 Django 的 URL 中传递 kwargs