Gou*_*un2 3 python xml django rest django-rest-framework
我正在尝试在 Django Rest FrameworkWork 中获取 xml 格式,我尝试了 Django Rest Framework 提供的教程,我是 django 的新手,我做了以下操作。
设置.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'books',
'users',
]
Run Code Online (Sandbox Code Playgroud)
urls.py
from django.conf.urls import url
from django.contrib import admin
from books.views import *
from users.views import *
from rest_framework.urlpatterns import format_suffix_patterns
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^books/all/$', all_books),
url(r'^user/', get_user)
]
urlpatterns = format_suffix_patterns(urlpatterns, allowed=['json', 'html','xml'])
Run Code Online (Sandbox Code Playgroud)
视图.py
from rest_framework.response import Response
from rest_framework.decorators import api_view
from books.serializers import *
from books.models import *
# Create your views here.
@api_view(['GET'])
def all_books(request):
books = Book.objects.all()
serializers = BookSerializer(books,many=True)
return Response(serializers.data)
Run Code Online (Sandbox Code Playgroud)
当我尝试访问 xml 数据时,我通过执行 ?format=xml 收到此错误
{"detail":"Not found."}
Run Code Online (Sandbox Code Playgroud)
教程链接http://www.django-rest-framework.org/api-guide/format-suffixes/
实际上你settings.py
缺少 xml 解析器配置。
pip install djangorestframework-xml
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework_xml',
'books',
'users',
]
Run Code Online (Sandbox Code Playgroud)
REST_FRAMEWORK = {
'DEFAULT_PARSER_CLASSES': (
'rest_framework_xml.parsers.XMLParser',
),
'DEFAULT_RENDERER_CLASSES': (
'rest_framework_xml.renderers.XMLRenderer',
),
}
Run Code Online (Sandbox Code Playgroud)