Flask RESTful API внутри ошибки приложения django: представление mysite.core.views.getallitems не вернуло объект HttpResponse. Вместо этого он вернул None

Я пытаюсь добавить API в свое приложение django с помощью Flask, цель API - вернуть некоторые данные JSON, если адрес электронной почты и пароль верны, через почтовый запрос:

url.py:

urlpatterns = [
    url(r'^getallitems', core_views.getallitems, name='getallitems'),
]

views.py:

@csrf_exempt
def getallitems(request):
    def post(self):
        try:
            data = {
                'name': 'Vitor',
                'location': 'Finland',
                'is_active': True,
                'count': 28
            }

            return JsonResponse(data, status=201)

        except Exception as e:
            return HttpResponse(status=201)

Ошибка:

Request Method: POST
Request URL:    http://127.0.0.1:8000/getallitems
Django Version: 1.11.3
Exception Type: ValueError
Exception Value:    
The view mysite.core.views.getallitems didn't return an HttpResponse object. It returned None instead.
Exception Location: /usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py in _get_response, line 198
Python Executable:  /usr/bin/python
Python Version: 2.7.12
Python Path:    
['/home/gaby/django projects/simple-signup-master/profile-model',
 '/usr/local/lib/python2.7/dist-packages/virtualenv-15.1.0-py2.7.egg',
 '/usr/lib/python2.7',
 '/usr/lib/python2.7/plat-x86_64-linux-gnu',
 '/usr/lib/python2.7/lib-tk',
 '/usr/lib/python2.7/lib-old',
 '/usr/lib/python2.7/lib-dynload',
 '/home/gaby/.local/lib/python2.7/site-packages',
 '/usr/local/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7/dist-packages/PILcompat',
 '/usr/lib/python2.7/dist-packages/gtk-2.0',
 '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
Server time:    Tue, 5 Sep 2017 07:25:25 +0000

Я попытался вернуть данные JSON в ответе http, и все они выдали одну и ту же ошибку. Я нашел соответствующие статьи в StackOverflow, но ни одна из них не решила мою проблему.


person gaby awad    schedule 05.09.2017    source источник


Ответы (1)


Вам нужно вернуть ответ от функции getallitems, как это

@csrf_exempt
def getallitems(request):
    def post(self):
        try:
            ......
        except:
            .....
    return post()
person amarynets    schedule 05.09.2017