【发布时间】:2018-10-29 22:52:27
【问题描述】:
我有一个简单的 rest api,我想向使用请求发送一个 post 请求。
我的网址格式是这样的:
url(r'^$', views.ProductList.as_view())
在我看来,我有:
class ProductList(generics.ListAPIView):
serializer_class = ProductSerializer
def post(self, request, format=None):
print('THIS IS A POST REQUEST')
queryset = [product.name for product in Product.objects.all()]
return Response(queryset)
我正在尝试使用以下方式发送发布请求:
response = requests.post('http://127.0.0.1:8080/')
但是,这会返回 403,并且不会打印 print 语句。我做了一些研究,我认为这可能与 CSRF 令牌不存在有关,但我不确定如何添加它。有人知道我怎样才能让发布请求工作吗?
我正在使用 python 3.6.3 和 Django 1.10
【问题讨论】:
-
添加网址。您的端点需要是连接到视图的 url
-
stackoverflow.com/questions/27315592/…csrf 免除你的看法
-
@harshil9968 谢谢。我按照他们所说的添加了,但仍然得到 403
-
403 也可能意味着视图需要登录用户。你的设置是这样的吗?
-
@BernardParah 抱歉 /products 不应该在那里。我进入了 Rest Framework Permissions 并将其更改为 AllowAny。不确定这是否是最好的方法,但现在可以了
标签: python django post django-rest-framework python-requests