为现有Web应用程序创建应用程序访问URL的优雅方法是什么?

时间:2010-07-12 01:11:24

标签: android django json

我被分配为使用Django构建的现有Web服务创建RESTful Android应用程序。

我目前的设计理念是让Android应用程序接收通常会发送到每个网址上的Django模板的数据的JSON版本。所以我的观点看起来像:

#The site stores and organizes user's medical experiences by allowing search of 
# what treatments have been effective for a particular condition
treatment_for_condition = {'treatment' : treatment, 'condition' : condition}
if send_as_json :
     return HttpResponse(json.dumps(treatment_for_condition),mimetype='application/json')
else:
     t = loader.get_template('results.html')
     return HttpResponse(t.render(treatment_for_condition))

有没有一种优雅的方法来设置“send_as_json”变量?我正在考虑以下两个策略:

1)将限定符添加到所有URL的末尾以便这样做     / condition / treatment /将返回一个网页     和     / condition / treatment /?json = true将返回一个JSON对象

2)创建一个子域json.treatmentreport.com,它将“send_as_json”变量设置为true,然后调度到与www域中相同的视图。

这些解决方案中的任何一个都可以优雅地实施吗?或者我是否完全以错误的方式解决这个问题?

1 个答案:

答案 0 :(得分:2)

我读过您的问题,我认为不是建议修改现有设置的方法,而是先尝试回答问题的主题:

  

“为现有Web应用程序创建应用程序访问URL的优雅方法是什么?”

查看django-piston

  

Piston是一个相对较小的Django应用程序,可以让你   为您的站点创建应用程序编程接口(API)。

     

它有几个独特的功能:

     
      
  • 联系Django的内部机制。
  •   
  • 支持开箱即用的OAuth(以及基本/摘要或自定义身份验证。)
  •   
  • 不需要绑定模型,允许任意资源。
  •   
  • 讲JSON,YAML,Python Pickle& XML(和HATEOAS。)   使用Python中方便的可重用库
  •   
  • 尊重并鼓励正确使用HTTP(状态代码,......)
  •   
  • 内置(可选)表单验证(通过Django),限制等。
  •   
  • 支持流式传输,内存占用少。
  •   
  • 坚持下去。
  •