- TurboGears 教程
- TurboGears - 首页
- TurboGears - 概述
- TurboGears - 环境
- TurboGears - 第一个程序
- TurboGears - 依赖关系
- TurboGears - 提供模板
- TurboGears - HTTP 方法
- Genshi 模板语言
- TurboGears - 包含
- TurboGears - JSON 渲染
- TurboGears - URL 层次结构
- TurboGears - Toscawidgets 表单
- TurboGears - 验证
- TurboGears - 闪存消息
- TurboGears - Cookie 和会话
- TurboGears - 缓存
- TurboGears - Sqlalchemy
- TurboGears - 创建模型
- TurboGears - CRUD 操作
- TurboGears - 数据网格
- TurboGears - 分页
- TurboGears - 管理员访问权限
- 授权与认证
- TurboGears - 使用 MongoDB
- TurboGears - Scaffolding
- TurboGears - Hook
- TurboGears - 编写扩展程序
- TurboGears - 可插入应用程序
- TurboGears - Restful 应用程序
- TurboGears - 部署
- TurboGears 实用资源
- TurboGears - 快速指南
- TurboGears - 实用资源
- TurboGears - 讨论
TurboGears - JSON 渲染
@expose() 装饰器默认呈现 html 内容。但是,可以将其设置为 json 内容类型。TurboGears 通过 tg.jsonify.JSONEncoder (**kwargs) 类支持 json 渲染。若要呈现 json 数据,只需将 json 作为内容类型传递给 expose 装饰器即可。
@expose('json') def jsondata(self, **kwargs): return dict(hello = 'World')
如果在浏览器中输入 '/jsondata' URL,它将通过响应方式显示 −
{"hello": "World"}
jsonp 渲染
JSONP 代表带填充的 JSON。除了它以调用 javascript 函数的 application/javascript 响应提供控制器返回的所有值外,它的工作方式与 json 输出类似,该函数可提供函数参数。
要启用 jsonp 呈现,你必须先将其添加到应用程序中的必需引擎列表中 – config/app_cfg.py −
base_config.renderers.append('jsonp')
按如下方式编写你的 expose 装饰器 −
@expose('json') @expose('jsonp') def jsonpdata (self, **kwargs): return dict(hello = 'World')
访问 /jsonpdata?callback = callme 时,你应看到 −
callme({"hello": "World"});
广告