当我尝试使用Django REST框架POST到一个简单的测试应用程序时,我收到错误"CSRF cookie not set".我已经尝试过Django 1.4和Django 1.6.2.我正在使用Django REST框架v 2.3.13.
我试过使用@csrf_exempt装饰器,但它没有帮助.
这是一个非常简单的应用程序,没有用户注册/登录等.
有什么想法我收到这个错误?
更新:我已经更新了我的urls.py,如下所示,它现在正在工作!
这是我的代码:
urls.py
from django.conf.urls import patterns, url
from quickstart import views
urlpatterns = patterns('',
url(r'^api_add/$', views.api_add, name='api_add'),
)
Run Code Online (Sandbox Code Playgroud)
views.py
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
@api_view(['POST'])
def api_add(request):
return Response({"test": 'abc'})
Run Code Online (Sandbox Code Playgroud)
settings.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
)
Run Code Online (Sandbox Code Playgroud)
post.sh
curl -X POST -H "Content-Type: application/json" -d '
{
"name": "Manager",
"description": "someone who manages" …Run Code Online (Sandbox Code Playgroud) Mixin类是抽象基类吗?在下面的示例中,对test_base的调用将失败,因为python无法解析self.assertEqual.
另外,PyCharm是不正确的,因为下面的标记Mixin类具有未解决的属性错误?
class TestConverterMixin(object):
def setUp(self):
self.alt_hasher = getattr(hash, self.converter.__class__.__name__)
def test_base(self):
with self.settings(PASSWORD_HASHERS=[self.hasher, ]):
load_hashers(settings.PASSWORD_HASHERS)
for password in PASSWORDS:
orig = self.alt_hasher.encrypt(password)
conv = self.converter.from_orig(orig)
# see if we get a working hash:
self.assertTrue(check_password(password, conv))
# convert back and test with passlib:
back = self.converter.to_orig(conv)
self.assertEqual(orig, back)
Run Code Online (Sandbox Code Playgroud) 我有两个这样的列表:
t = [1,2,3,4]
f = ['apples', 'oranges','grapes','pears']
Run Code Online (Sandbox Code Playgroud)
我需要创建一个这样的列表列表:
data = [
['Fruit', 'Total'],
['apples', 1],
['oranges', 2],
['grapes', 3],
['pears' 4]
]
Run Code Online (Sandbox Code Playgroud)
我这样做了:
l = []
l.append(['Fruit', 'Total'])
# I guess I should have check that lists are the same size?
for i, fruit in enumerate(f):
l.append([fruit, t[i]])
Run Code Online (Sandbox Code Playgroud)
只是想知道是否有更多的Pythonic方式.
说我有这样的测试:
self.assertTrue( car.color == 'blue')
Run Code Online (Sandbox Code Playgroud)
我用它来运行它
nosetests test_car.py -x -v --stop
Run Code Online (Sandbox Code Playgroud)
如果失败了,我希望打印出car.color的实际值.有没有办法做到这一点?