2017-04-17 62 views
1

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

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”。

预先感谢您!

回答

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') 

作为替代方案。

+0

我会用这个! :D –

+0

'request.params','request.POST'和'request.GET'中的所有数据都是字符串(可能是空的),除非您对数据做了一些后处​​理。 –

+0

同意...使用str()或者encode()实际上并不是必需的。如果一个模板包含多个表单,可能有一些不被使用可能导致不存在的字典键;这就是为什么我建议在尝试使用它之前检查密钥的存在。 –

1

我设法使它与这段代码一起工作。

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