如何访问 Backbone 获取数据服务器端

How to access Backbone Fetch data server side

我有一个 backbone 模型用于调用 fetch。我有一个 Flask 服务器,我需要在上面访问 backbone 模型的 ID。我似乎无法获得服务器上模型的 ID。如何在我的 Flask 代码

中访问 entityId
BB.Politician = Backbone.Model.extend({
    defaults: {
        type: "Politician"
    },
    url: "/my_url_here"
});
var currentUser = new BB.Politician({"entityId": "1625"});
currentUser.fetch({
    //method: "POST",
    success: function(user){
        currentUserView.render();
    }
});

#Flask server code
@app.route('/my_url_here', methods=['GET', 'POST'])
def return_poitician():
    print request
    print request.args
    print request.values 

    #none of the above print statements are giving me the "entityId"
    return data

我也尝试在路由中添加 id,但在 fetch() 执行时抛出 404 错误:

@app.route('/my_url_here/<entityId>', methods=['GET', 'POST'])
def return_poitician(entityId):
    print entityId
@app.route('/my_url_here/<entityId>', methods=['GET', 'POST'])

没有收到任何东西 id 因为你没有发送任何东西。

Backbone fetch 使用模型的 id 字段来构造 fetch URL,在你的情况下我建议将 entityId 变成 id:

BB.Politician = Backbone.Model.extend({
    defaults: {
        type: "Politician"
    },
    url: "/my_url_here"
});
var currentUser = new BB.Politician({"id": "1625"});

并让 Backbone 构造 GET,它看起来像:

"/my_url_here/" + this.get('id'); // this refers to model

变成

"/my_url_here/1625"

Backbone.Model.url 也接受函数作为值,因此您可以定义自己的构造 URL 的逻辑。例如,如果您必须保留 entityId,您可以像这样构建 url

url: function () {
    return "/my_url_here" + this.get('entityId');
}