我该如何在Django URLs中实现这个?(.json, .xml)
假设这是我的网址路由:
(r'^test/?$','hello.life.views.test'),
我该怎么做才能让用户在网址后面加上 .json 或 .xml,并且把这个信息传递给我的 views.test,这样我就知道要生成 json 格式或 xml 格式的数据呢?
6 个回答
0
把xml或json作为参数传递。你可以在网址中这样获取它(r'^test/(?P < doc_type > [^/]+)$','hello.life.views.test'),
0
我为我的API选择了一个默认格式(json)。如果最终的开发者想使用其他格式(比如yaml、xml等),我允许他们通过GET参数来发送这个格式的请求:
http://api.mysite.com/getinfo/?format=xml
def get_info_view(request):
format = request.GET.get(format, None)
if format:
# handle alternate (non-json) format
return json_object
8
补充一下@ziang的回答,如果你真的想模拟文件扩展名,可以这样写正则表达式。r'^test\.(?P<extension>(json)|(xml))$'
另外,我想说,把期望的返回内容类型作为一个参数提供,确实更符合RESTful的设计原则。