Ajax与Python Pyramid的数据交互

1 投票
1 回答
1863 浏览
提问于 2025-04-16 19:05

到目前为止,我已经成功地把一些HTML元素的内容(这些元素的contentEditable属性是True)拿过来,把它们的ID和HTML数据结合在一起,形成一个Ajax数据字符串。我可以顺利地把这些序列化的数据发送到服务器,没有问题。例如,

$(document).ready(function(){
    $("#save").click(function(){
        var ajax_string = ''
        $( "[contenteditable=True]" ).each(function( intIndex ){
            ajax_string = ajax_string + '&' + $("[contenteditable=True]")[intIndex].id + ':' + $(this).html();
        });
        $.ajax({
            type:"POST",
            url:"/episode_edit/{{ episode.ID_Episode }}",
            data:ajax_string,
            success:function(result){
                <!--alert( ajax_string );-->
                }
        });
    });
});

在服务器上:

for r in request.params: print r

我收到的字符串是:

AltTitle:some Alt Title
PrintTitle:The Print Title
Notes:A bunch o' notes.

现在我面临的难题是,我需要把每个request.param字符串转换成一个字典对象,这样我才能把它映射回我的数据库模型。我能想到一些很麻烦的方法来做到这一点,但最好的方法是什么呢?

1 个回答

0

你说你想把每一个请求参数的字符串转换成一个字典对象,但你真的是这个意思吗?看起来每个字符串其实只是一个键值对。

你可以很简单地用下面的方式从这些值创建一个字典:

opts = {}
for r in request.params:
    parts = r.split(':', 1)
    if len(parts) == 2:
        opts[parts[0]] = parts[1]
    else:
        # some error condition

撰写回答