私はクライアント/サーバー側のプログラミングに新しいので、私の質問は基本的かもしれません。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」で実装するコードサンプルを教えてください。
ありがとうございます!
@Matthew: 'UrlEncodedFormEntity'の' setEntity() '呼び出しがPOSTデータを正しく設定していないと言っていますか? –
これは基本的にrequest.POST ['year']は "year"でキー入力されたjson文字列をキャプチャします。 Djangoの "name"という名前のテーブル列に "cdfe"という値を保存するように、json文字列を分解する "views.py"のpythonコードは何ですか?保存が成功したというメッセージを返すべきですか?私が読んでいるブログのほとんどは、このすべての仕事をするPHPファイルを持っているので、私は、すべての仕事をするためにPHPファイルが必要ですか?私がPythonですべての作業を行うことができれば素晴らしいだろう。私がDjangoから必要とするのは、とにかくデータベースに値を書き込むことだけです。 – David
'django.utils.simplejson.loads()'を使用してJSON文字列をPythonオブジェクトに変換し、それらを歩き、適切な要素をモデルの属性に割り当てます。 –