2017-04-17 3 views
1

私はPythonでPHPの$ _POST []と同等のものを探しています。 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 

注:それはASCIIを超えて文字を使用してユニコード入力と互換性がないかもしれないとして、特にPythonの2.xでは、STR()関数を使用して注意してくださいを。次の点を考慮してください:

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

+0

これを使用します。 :D –

+0

'request.params'、' request.POST'、 'request.GET'のすべてのデータは、データの後処理をしない限り、文字列(おそらく空のもの)になります。 –

+0

合意しました... str()またはencode()の使用は実際には必要ありません。テンプレートに複数のフォームが含まれている場合は、使用されていないものがあり、存在しないdictキーが生成される可能性があります。キーを使用しようとする前にキーの存在を確認することをお勧めします。 –

1

私はこのコードで動作させることができます。

@view_config(route_name='newusers', renderer='json') 
def newusers(self): 
    name = str(self.request.POST.get('firstName')) 
    return name 
関連する問題