- ベストアンサー
WebのPythonでの値の受け渡し
- Pythonを使用してWebサイトを作成している際、ページ間で値を渡す方法について困っています。
- 現在のコードでは文字列として値を渡しており、受け取り側での処理が煩雑です。
- 改善する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
URLでこの形で送る以上は、文字列にしなければなりません。 したがって「データを文字列に変換する」「変換された文字列を元のデータに戻す」プログラムを用意するか、既にあるものを活用するか、です。 決まった方法はありません。 あなたがやろうとしている事に合っている方法を探してください。 例えば、 [1,2,3] 程度なら id=1,2,3 というURLになるように空白とかを調整して送信。 受信側では、 1,2,3 を ','.split(~) で分割。 とか。 データ量がそれほどでなければ、JSONやXMLという方法もあるだろうし、ある程度大きくなったらURLとしては使えないので、別の方法を考える必要があります。
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
WebというPythonの外を通しての通信、しかも、同じプロセスに戻ってくるとは限りません(片方はPythonでは無いかもしれない) > しかし、その前に文字列になってしまっているため受け取り側での処理がいろいろと面倒だったり 渡す際にいろいろ処理をしてから渡さないとならず手間がかかります。 どの言語でも、このあたりは一緒です。 そのプログラムを自分で作るか、だれかが作ってくれたものを使うかだけです。 http://docs.python.jp/2/library/cgi.html 一応、PythonにもCGIモジュールがあります。
補足
cgiモジュールは利用しています。 しかし、 print ( html_body.format([0,1,2,3]) ).encode('utf-8') にてHTMLの出力を行っている際 .formatでHTMLに文字列を置換しているわけでこの部分を解決しなければ 渡す側が文字列以外の型を渡せないと思います。 そしてその解決方法が分からず苦戦しています。
お礼
なるほど、URLである以上は文字列・・・ですよね。 ありがとうございました。 面倒なデータはXMLなどを検討してみようと思います。