このような仕組みはAjaxを利用して実装するのだと自分では思っています。
そこでPythonとAjaxの連携の情報がを検索したのですが、あまり無いようでよく分かりませんでした。
自分はAjaxを実装した事がありません。
Ajaxと言えば、JSON化されたデータが書かれたサーバ内のファイルを処理が発生した際に非同期で取得しにいく処理だと理解しております。
PHPの情報では、XMLHttpRequestを利用してJSONデータのやりとりを行うようですが。
どのようにPythonでAjaxと連携すればいいのか教えていただけないでしょうか?
簡単でも良いのでコードなど頂けたら幸いです。
また、上記のことを考えている際に以下の疑問が出てきました。
PythonからデータをJavaScriptに送れれば別にAjaxを実装する必要も無いのかなとも思いました。
以上長くなりましたがアドバイスいただけたら幸いです。
宜しくお願いいたします。
環境:
Python2.6
Django1.6.2
jQuery最新版
普通の HTML も、Ajax によるデータの取得も、Webサーバ側は、
だけです。
Django を使ってるということは、response header に対する意識は、あまりしたことは無いでしょうか?
サーバ側の Python の例は、こちら。
http://rayed.com/wordpress/?p=1508
Django を使わず、素の CGI として動かすときの Python スクリプトは、こんな感じ。
http://datatables.net/forums/discussion/9920/python-backend-json-dump-via-jquery-ajax-call
クライアント側は、jQuery を使って良いなら、getJSON メソッドを使うのが良いと思います。
http://hayageek.com/jquery-ajax-json-parsejson-post-getjson/#get-json
もし、jQuery を使わないなら、こんな感じ。
https://mathiasbynens.be/notes/xhr-responsetype-json
PythonからデータをJavaScriptに送れれば別にAjaxを実装する必要も無いのかなとも思いました。
「送れれば」というのが、オートコンプリートを動作させるページを表示するときの Python スクリプトで、オートコンプリートに必要なデータをすべて埋め込んでおく、ということであれば、それも、ひとつのやり方だと思います。
必要なデータのサイズが、たいした大きさではない、という条件は付きます。
オートコンプリートの機能を使う必要が無い場合でも、毎回データが送られるわけですから。
データの取り直しは、通常はページのリフレッシュが必要です。
一度、表示されたページをリフレッシュすることなく、Python スクリプトを経由してデータを取り出す、という方法(のひとつ)が Ajax です。
http://hryk224.github.io/2014-08-02-angularjs_suggest/