首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django:编写通用视图选项

Django:编写通用视图选项
EN

Stack Overflow用户
提问于 2013-06-20 21:32:25
回答 1查看 92关注 0票数 2

我有一个Django视图,在执行某些自定义逻辑之前,我希望重用而不是复制和粘贴加载和验证的内容。

我正在评估三种使这个视图可重用的方法:

  1. 装潢师(不是Djangoish)
  2. 泛型视图方法(调查)
  3. 基于类的泛型视图(有点过火)

你会推荐什么?为什么?

我提供了以下视图的一个片段:

代码语言:javascript
复制
try:
    data = json.loads(request.body)
except:
    resp = generate_json_response(False, 'validation', 'JSON data cannot be parsed. Please check your data format.')
    return HttpResponse(resp, mimetype="application/json")

# Validation
location = data.get('location', None)
if location:
    {custom logic}

else: 
    # No Location
    resp = generate_json_response(False, 'validation', 'Missing location id')
    return HttpResponse(resp, mimetype="application/json")

resp = generate_json_response(True, None, None)
return HttpResponse(json.dumps(resp), mimetype="application/json")
EN

回答 1

Stack Overflow用户

发布于 2013-06-21 01:10:32

您是否考虑将基于类的泛型视图与混合器一起使用?就像这样:

代码语言:javascript
复制
class JSONResponseMixin(object):
    def render_to_response(self, context):
        return self.get_json_response(json.dumps(context))

    def get_json_response(self, content, **httpresponse_kwargs):
        return http.HttpResponse(content,
                   content_type='application/json',
                   **httpresponse_kwargs)


class MyView(JSONResponseMixin, SomeView(BaseDetail, BaseUpdate etc..)):
    pass

也许为您的目的使用一些json实现会更好。看一看:

http://json-rpc.org/

http://www.jsonrpc.org/specification

http://en.wikipedia.org/wiki/JSON-RPC#Implementations

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17224169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档