1

我习惯于使用 http 请求定义我的 django 视图,该请求使用我可以迭代和显示的 python 数据字典发回 http 响应。我正在尝试使用backbone.js 来替换它。

目前我有这样的设置:

<ul id="teaching_students">

 {% for student in students.object_list %}
    <li class="selected">
      <span> {{ student.name }} </span>
    </li>
 {% endfor %}
</ul>

我想使用 ICanHaz.js 和 Mustache.js 作为 javascript 模板来填充{{ student.name}}客户端。

到目前为止,我使用了美味的派,PersonResource当通过以下 url 时,我有一个所有学生都作为 json 对象返回。

http://127.0.0.1:8000/api/people/?format=json
  1. 我是否需要在views.py 中为这个url 生成一个API 视图,如果需要,那是什么样的?
  2. 我如何在backbone.js中调用这个url并设置一个集合、视图和一个正确的路由?

我的客户端结构被分解为views/models(我使用 require.js 将它们组合在一起)。

我正在使用几个插件来帮助弥合骨干和美味派(backbone-tastypie.js)之间的差距,但我真的想看看其他人如何用 REST api 和骨干.js 取代传统的 django 模板渲染

编辑:添加主干模型,这是我正在使用的模型

define([
    'underscore',
    'backbone'
], function(_, Backbone) {

    var PersonModel = Backbone.Model.extend({

        defaults : {

        },

        initialize: function( options ) {

        },

        parse : function(res) {
            // because of jsonp
            return res.data;
        }

    });

    return PersonModel;

});
4

1 回答 1

0

所以你想从服务器端渲染转移到客户端渲染?这意味着您会产生额外的 http 请求。但这是可能的。

我是否需要在views.py 中为这个url 生成一个API 视图,如果需要,那是什么样的?

一旦你指定了你的ModelResourceand ,美味的派就可以完成所有的工作urlpattern。您无需在应用的 views.py 中添加其他函数来处理 http 请求-响应周期。

  1. 查看美味派教程,了解如何将您的资源挂接到 url。
  2. 使用像Postman chrome 扩展这样的测试 REST 客户端来查看是否一切正常。

我如何在backbone.js中调用这个url并设置一个集合、视图和一个正确的路由?

  1. 像对待其他任何 API 一样对待 API。url将模型的字段设置为

    /api/people/?format=json

  2. 让你的视图监听change事件PersonModel

  3. 获取模型。

  4. 收到数据后,使用您选择的模板引擎渲染视图。

另请参阅将 REST 添加到 Django,以了解为 django 应用程序提供 RESTful 接口的选项。

于 2013-03-04T05:27:04.360 回答