使用Djang提供XML和HTML

2024-03-28 09:05:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Django应用程序,它必须为普通浏览器提供HTML文件,可以理解HTML,并向其他客户机提供XML文件。 在我的视图.py我试图区分不同的HTTP_ACCEPT标记,传入的HTTP请求有。这似乎已经起作用了,因为一个普通的HTML文件是按预期提供的。在

只有当我尝试为XML文件提供服务时,才会收到一个错误消息:

/appstore处的值错误/ 风景appstore.views.index没有返回HttpResponse对象。在

这是我的视图.py在

from appstore.models import App
from django.shortcuts import render_to_response, get_object_or_404
from django.http import HttpResponse
from django.core import serializers

def index(request):
  if (request.META['HTTP_ACCEPT'].find('text/html') != -1):
    latest_app_list = App.objects.all().order_by('name')[:5]
    return render_to_response('appstore/index.html', {'latest_app_list': latest_app_list})
  else:
      def xml_view(func):
        def wrapper(*args, **kwargs):
          result = func(*args, **kwargs)
          return HttpResponse(serializers.serialize("xml", result),
            mimetype="text/xml")
        return wrapper
      @xml_view
      def index(request):
        return App.objects.all()
      @xml_view
      def get(request, id):
        return get_object_or_404(App, pk=app_id)

我希望你们中有人能帮助我。 提前谢谢。在


Tags: 文件djangofromimportapphttpindexreturn