如何使用Pyramid在Python上使用POST提交数据?

时间:2017-04-17 05:42:25

标签: python ajax pyramid

我在Python中寻找相当于PHP的$ _POST []。 在PHP上,当您提交表单时,您可以使用$ _POST []获取其值。 如何在python上获取这些数据? 这是我的代码。

function NewUser(){
                    var firstName = $('#firstName').val();
                    var dataString = '&firstName='+firstName;
                    $.ajax({
                        type:"POST",
                        url:"newusers",
                        data:dataString,
                        dataType:'text',
                        success:function(s){
                            alert(s);
                        },
                        error:function(){
                            alert('FAILED!');
                        }


                    })
                }

这是我扔数据的地方。

@view_config(route_name='newusers', renderer='json')
    def newusers(self):
    return '1';

此代码工作正常,它返回并提醒字符串“1”。

我的问题是,如何获取提交的firstName?并把它放在返回而不是“1”。

提前谢谢!

2 个答案:

答案 0 :(得分:1)

我设法让它与这段代码一起使用。

@view_config(route_name='newusers', renderer='json')
def newusers(self):
    name =  str(self.request.POST.get('firstName'))
    return name

答案 1 :(得分:1)

应该有效的另一种变体:

@view_config(route_name='newusers', renderer='json')
def newusers(self):
    # Best to check for the case of a blank/unspecified field...
    if ('firstName' in self.request.params):
        name =  str(self.request.params['firstName'])
    else:
        name = 'null'
    return name

注意:小心使用str()函数,特别是在python 2.x中,因为它可能与使用ascii之外的字符的unicode输入不兼容。你可能会考虑:

        name = (self.request.params['firstName']).encode('utf-8')

作为替代方案。