【问题标题】:Django return json and html depending on client pythonDjango根据客户端python返回json和html
【发布时间】:2012-03-04 20:07:58
【问题描述】:

我有一个 django 应用程序,它有 html 模板,我还有一个命令行 python api,它可以对服务器上的 django 应用程序执行 GET 和 POST 请求。 api 几乎可以做 django 应用程序可以做的所有事情。我如何做到这一点,当我通过浏览器访问 django 应用程序时,它返回 html,但是当我通过 api 访问它时,它返回 json?

我必须将 json 放在哪里以及我必须对我的应用程序进行哪些更改?

谢谢

【问题讨论】:

    标签: python html django json


    【解决方案1】:

    对 JSON 和 HTML 版本使用不同的 URL。

    我建议您的 JSON 版本在 r'normal/api(?P<json_flag>/json/?)$' 之类的 url 上可用,并在您的视图中有一个参数来接收 json 标志。然后你就可以适当地发球了。

    当然,您的视图必须使用不同的逻辑来生成 HTML 和 JSON。我强烈建议您使用 json 模块而不是模板来生成 JSON。

    【讨论】:

    • 感谢您的回答。最后澄清一下,我需要2个模板吗?每个视图一个在 json 中,一个在 html 中?
    • @Jimmy:我强烈建议您永远不要尝试在一个模板中混合不同的格式。对于 json,您应该使用标准的 json 模块而不是模板。
    猜你喜欢
    • 1970-01-01
    • 2015-11-29
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2022-08-19
    • 2016-02-12
    相关资源
    最近更新 更多