2010-11-27 10 views
1

私はクライアント/サーバー側のプログラミングに新しいので、私の質問は基本的かもしれません。views.pyを使用してアンドロイドからDjangoサーバーに送信された応答をキャプチャするにはどうすればよいですか?

基本的に、アンドロイドからJSON形式のデータをDjangoサーバーに送信しようとしています。データを送信するためのコードは以下の通りです:

 try { 
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("http://localhost:8000/androidweb/edit/"); 
     JSONObject j = new JSONObject(); 
     try { 
    j.put("name", "cdfe"); 
    } catch (JSONException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 
    nameValuePairs.add(new BasicNameValuePair("year", j.toString())); 
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
    HttpResponse response = httpclient.execute(httppost); 
    }catch(Exception e) { 
    //catch the exception and print it 
} 

だから、私の意図は、基本的には、コードに記載されたURLを呼び出すことです。私はDjango urls.pyにURLを追加して、views.pyクラスを使用して上記のJSONデータをsqliteデータベーステーブルに格納することができます。このテーブルには "name"というフィールドが1つだけ含まれています。しかし、私のアプローチが正しいかどうかはわかりません。私が見たほとんどのコードサンプルは、データをPHPファイルに渡すので、Pythonクラスのviews.pyを使用することが可能かどうか疑問に思っていましたか?

可能であれば、上記のコードから送信されたJSONデータをキャプチャして「名前」フィールドのテーブルに格納する方法の「views.py」で実装するコードサンプルを教えてください。

ありがとうございます!

答えて

1

POST経由で送信されるデータは、request.POSTから入手できます。 request.POST['year']を調べてみてください。

+0

@Matthew: 'UrlEncodedFormEntity'の' setEntity() '呼び出しがPOSTデータを正しく設定していないと言っていますか? –

+0

これは基本的にrequest.POST ['year']は "year"でキー入力されたjson文字列をキャプチャします。 Djangoの "name"という名前のテーブル列に "cdfe"という値を保存するように、json文字列を分解する "views.py"のpythonコードは何ですか?保存が成功したというメッセージを返すべきですか?私が読んでいるブログのほとんどは、このすべての仕事をするPHPファイルを持っているので、私は、すべての仕事をするためにPHPファイルが必要ですか?私がPythonですべての作業を行うことができれば素晴らしいだろう。私がDjangoから必要とするのは、とにかくデータベースに値を書き込むことだけです。 – David

+0

'django.utils.simplejson.loads()'を使用してJSON文字列をPythonオブジェクトに変換し、それらを歩き、適切な要素をモデルの属性に割り当てます。 –

関連する問題