2017-04-17 65 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 
相關問題