Python CGI
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/11/14(火) 23:09:04ID:KpRkBouPPyJUG:ドキュメントはここ
http://www.python.jp/Zope/
Python CGI入門みたいの
http://www.gesource.jp/programming/python/cgi/index.html
cgiモジュール説明書
http://www.python.jp/doc/2.4/lib/module-cgi.html
0107nobodyさん
2008/12/08(月) 19:17:36ID:???http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_03_400x300.jpg
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_01_400x300.jpg
http://builder.japan.zdnet.com/story_media/20384793/081204_sun-james-gosling_02_400x300.jpg
0108nobodyさん
2008/12/09(火) 04:27:12ID:???という関数を呼ぶと自分で定義した変数とか関数とかの一覧(+α)が
返ってくるので、それを使うという方法もある。
>>> a=1
>>> 'a' in locals()
True
0109nobodyさん
2008/12/09(火) 17:42:11ID:???0110nobodyさん
2008/12/09(火) 21:35:42ID:???0111nobodyさん
2008/12/10(水) 03:03:33ID:???0112nobodyさん
2008/12/10(水) 14:27:05ID:???http://pc11.2ch.net/test/read.cgi/php/1228881994/
0113nobodyさん
2008/12/11(木) 05:02:18ID:???0114nobodyさん
2008/12/13(土) 00:35:39ID:???日本語訳マニュアルに誤変換が多すぎてバカっぽいからやめるわ
0115nobodyさん
2008/12/13(土) 00:50:53ID:???PHPとともに生きるが幸せ
0116nobodyさん
2008/12/13(土) 04:04:47ID:h3kmjY+F一つの言語だけに絞るのもいいかも知れんね。
趣味ならば。
0117nobodyさん
2008/12/15(月) 06:54:35ID:sacUpYiffrom mod_python import apache
def handler(req):
req.content_type = 'text/html'
req.write("<html><head><title>Hello World!</title></head><body>hoge</body></html>")
return apache.OK
writeの引数のテキストがそのまま表示されてしまう。
0118nobodyさん
2008/12/15(月) 13:23:12ID:???0119nobodyさん
2008/12/31(水) 00:18:58ID:FXljk5zO自分で確認した事項等は以下の通りです:
・ ローカルでは動作する
・ パーミッションは755になっている
・ アスキーモードで転送している (バイナリモードでも試してみた)
・ 文字コードは UTF-8 で、プログラム内にも # -*- coding: utf-8 -*- としている
・ import したのは cgi, urllib, re, time
・ cgitb を試みたが、使えていない
0120nobodyさん
2008/12/31(水) 00:24:43ID:???0121nobodyさん
2008/12/31(水) 00:30:58ID:???0122nobodyさん
2008/12/31(水) 06:43:36ID:???0123nobodyさん
2008/12/31(水) 13:59:27ID:???これだろ
0124119
2008/12/31(水) 16:40:57ID:FXljk5zO同じ場所に別のcgiプログラムを置いたところ、パス指定が同じで正常に動作しますので、それはないと思われます。
>>120 >>122 shebang / apache
当方詳しくないものでわかりません、調べてみましたが使い方とかが…
正常に動くプログラムを部分的に改変することにより再現しようとしたら、文字コードを UTF-8 に (同時に、パスの次の行に
# -*- coding: utf-8 -*-
と) したらエラーが発生することがわかりました。
0125fushianasan
2008/12/31(水) 17:06:27ID:???0126nobodyさん
2008/12/31(水) 18:04:34ID:kx00N+c5UnicodeEncode(Decode)Error
とか出てない?
0127119
2008/12/31(水) 18:26:15ID:FXljk5zOローカル実行時は出ていません。
サーバ実行時はこんだけです:
500 Error - Internal Server Error
CGIもしくはSSIが正しく動作していません。
0128nobodyさん
2008/12/31(水) 18:45:54ID:???import cgitb; cgitb.enable()
これでもだめ(500 Error - Internal Server Error がでる)って言う意味か?
0129nobodyさん
2008/12/31(水) 18:47:20ID:???動くものと動かないもののソース晒せ
0130nobodyさん
2008/12/31(水) 19:59:42ID:kx00N+c5ありがとうございました
0131119
2008/12/31(水) 20:38:51ID:FXljk5zOそのとおりです。
>>129
動くもの: エンコーディングは ANSI (windows notepad の)
#!/usr/local/bin/python
import cgi
import urllib
from time import localtime, strftime
filename = strftime("./data/hatena%Y%m%d-%H%M%S.html", localtime())
print ""
target = urllib.urlopen("http://www.google.co.jp/")
data = open(filename, "w")
data.write(target.read())
data.close()
print target.read()
動かないもの: エンコーディングはUTF-8
コードはパスの次の行に
# -*- coding: utf-8 -*-
を追加しただけ
0132nobodyさん
2008/12/31(水) 22:14:06ID:???二回実行して問題ないんかな
0133119
2008/12/31(水) 22:29:30ID:FXljk5zOUTF-8 でないものは2回実行しても動きます。
UTF-8 のものは1回でも動きません。
どうやら来年に持ち越しのようですね…。
0134nobodyさん
2008/12/31(水) 23:03:42ID:???911では小型の水爆が使用されている。
http://ri■ch■ardkosh■im■izu.at.webry.info/
創価の保険金殺人事件。
オウム事件は、統一・創価.北朝鮮の共同犯行である。CIAが監修している。
http://www15.ocn.ne.jp/~oy■ako■don/kok_web■site/ir■iguc■hi.htm
与党も野党もメディアも全部朝鮮人だった。
http://jb■bs.li■vedo■or.jp/b■bs/read.cgi/news/20■92/115794■1306/
2ちゃんねるは統一■教会が個人情報を集めるための道具。運営には統一■教会がいる。
駅前で「手相を見せてください」と勧誘してるのが統一教■会。(カルト宗教)
カルト宗教の下にいる人と上にいる奴を分けて考えないといけない。下にいる利用される人は上がどんなことをしてるか知らない。
ユダヤ権力の子分→2ちゃん運営=統一協会上層部=層化上層部=自民党清和会=野党の朝鮮人ハーフの政治家=
与党の朝鮮人ハーフの政治家=金 正日(キム・ジョンイル )=読売サンケイ=小沢十朗
ユダヤ人=ロックフェラー=ブッシュ=クリントン=ヒラリー=アドルフ・ヒトラー=オサマ・ビンラディン
毎日新聞スレを荒らしてる奴らも統■一教会の可能性が高い。
荒らしは洗脳するために「ネトウヨ」などのレッテル付けレスを何千回もする。
現実には「ネトウヨ」などは存在しない。
http://changi.2ch.net/test/read.cgi/ms/1230363385/
0136119
2008/12/31(水) 23:38:28ID:FXljk5zO公開できない文字列を含む部分などを隠していますが、テストコードの段階であることは確かですね。
しかし、より小さいコードで試した結果などから、原因は文字コード周りにあると考えてよいと思います。
この点についてはサーバ管理者に問い合わせましたが、年末につき返信待ちであります。
0137nobodyさん
2008/12/31(水) 23:46:18ID:???0138nobodyさん
2008/12/31(水) 23:47:39ID:???0139nobodyさん
2008/12/31(水) 23:50:25ID:???「ファイルは出来てない」はプログラムが完成していないという意味じゃなくて
<ここまでに死んでるのか
data = open(filename, "w")
data.write(target.read())
data.close()
<この辺で死んでるのか
print target.read()
を知りたかった訳なんだけど
どう?
0140119
2009/01/01(木) 00:03:06ID:l/3teeKT悪の元凶: Windows メモ帳
直接原因: UTF-8 には入れるべきでない余分なヘッダ (?) 3バイトがファイル先頭に挿入されていた
対策: バイナリエディタで開いて先頭3バイトを削除して保存しなおす
0142nobodyさん
2009/01/01(木) 00:11:44ID:???0143nobodyさん
2009/01/01(木) 00:12:38ID:???BOMのことか
それを「UTF-8 には入れるべきでない」っつーのは言いがかりだな
まあそれが原因で shebang が利かなくなってたのは確かだが
Windows メモ帳 を悪の元凶と言うのは素人
0144 【だん吉】
2009/01/01(木) 00:23:45ID:fHn+ttSapython自体はBOM付いてても受け付けるけど
shellが解釈する時点でだめでしょ
0145nobodyさん
2009/01/01(木) 00:27:57ID:???に同意
0146nobodyさん
2009/01/01(木) 00:39:00ID:???○悪の元凶: Windows メモ帳を使用
0148nobodyさん
2009/01/01(木) 19:22:20ID:???0150nobodyさん
2009/02/13(金) 18:10:26ID:???それぞれをクリックしたら何が起こるんでしょうか?
0151nobodyさん
2009/02/13(金) 19:57:40ID:???submit…一緒に出力されているhtmlでsubmitの親ノードになってるformのactionに対して送信する
reset…一緒に出力されているhtmlでresetの親ノードになっているform内のinput/select/textarea等がクリアされる
PythonのCGIって言っても単にブラウザに向かってHTML(たまにCSVとかXMLとかバイナリとか違うものも吐くけど)
を吐き出してるだけなんで、普通のHTMLと同じ挙動をするだけだよ。
0152150
2009/02/13(金) 20:37:43ID:???その「送信された側」などの関係がわからないのです。
0153nobodyさん
2009/02/13(金) 20:43:19ID:???ブラウザの実相にもよるけど、大抵のメジャーブラウザはresetはサーバーとの通信を
行わずローカルだけでやるはずなので、送信元になるのが何であっても(静的HTMLでも、
PythonのCGIが吐き出したHTMLでも、PHPやPerlCGIが吐き出したのでも)同じ動きです。
formからの送信を受け取る側がPythonのCGIなら、↓参照
http://www.python.jp/doc/release/lib/module-cgi.html
0154150
2009/02/13(金) 22:21:19ID:???そうです、そこ見てたんですよ。
Python 勉強しはじめて、ローカルで動くプログラムはいろいろ書いてはいるんですが
送信側と受信側との関係? というか…
FieldStorage() して getlist(name) というのはわかったのですが
どうやってデータをここに入れてあげればいいのかが…
0155nobodyさん
2009/02/13(金) 23:19:15ID:???他の言語(Perl,PHP.Rubyなど)でHTTPサーバー⇔ローカルの通信やったことありますか?
<form action="python.cgi" method="post">
<input type="text" name="hoge" value="mage" />
<input type="submit" value="送信" />
<input type="reset" value="リセット" />
</form>
というHTMLがあったとして、
submitする…cgi.FieldStorage()するとform["hoge"].valueにmageが入る
resetする…サーバーと通信は行わずローカルのブラウザ側でinput type="text"のvalueをクリア
0156150
2009/02/13(金) 23:39:29ID:???上のコードの場合、FieldStorage() は python.cgi の中でするんでしょうか。これで合ってれば、ほぼ理解できました。
0157nobodyさん
2009/02/13(金) 23:42:06ID:???cgi.FieldStorage()は通信を受け取った側(>155のHTMLをそのまま使うとすると、おっしゃる通りpython.cgiの中で)
することになります。
↓に少しサンプルがあるので見てみてください。
http://www.python.jp/doc/release/lib/node561.html
0158150
2009/02/14(土) 00:26:36ID:???サンプルの方は既に見てましたよ〜。
0159nobodyさん
2009/02/14(土) 09:03:11ID:???入門書嫁。
0160150
2009/02/14(土) 16:20:41ID:???http://www.kanzaki.com/docs/html/htminfo31.html htminfo32.html htminfo33.html を読んですっきりしました。
0161nobodyさん
2009/02/15(日) 14:00:15ID:???WEBアプリ、特にCGIの入門者が躓きやすいところの情報は、未だにPerl CGIの頃の情報が一番豊富だろ。
んで、悪い癖がつく前にPythonなりRubyなりに移行すれば(またはしなくても)いいんじゃないかと。
0162nobodyさん
2009/02/15(日) 22:49:01ID:???WEBに特化してるだけあってそのあたりのことも
マニュアルで解説されてる。
ただし、Perl以上にPHPのほうが癖が強かったりする。
0163nobodyさん
2009/02/18(水) 19:38:12ID:q8sXwxpKcheckboxの受け取り方とかタヒネとか思う
0164nobodyさん
2009/02/19(木) 19:04:35ID:???0165nobodyさん
2009/02/19(木) 22:50:20ID:???0166nobodyさん
2009/04/26(日) 16:13:15ID:+askKVedPythonをWebアプリからはじめて
ゆくゆくはGUIもやってみたいなと思ってる初心者ですが
オススメの書籍は>>159の他にありますか?
Webアプリのセキュリティあたりにも触れているととても幸せです。
現在チュートリアル見てちまちまと勉強中です。
ソースコードがシンプルで好きになれそう…
0167nobodyさん
2009/04/26(日) 16:14:58ID:???0168nobodyさん
2009/04/26(日) 16:19:43ID:+askKVedいずれはそうしたいと思うんですが
はじめからFWやると細かい部分吸収されちゃって学習出来なさそうなんで
俺俺FW作りつつ勉強してみたいなと思ってます
0169nobodyさん
2009/04/26(日) 18:29:24ID:???身になること書いてないしサンプルコードとモジュールのソースコード読みながらやっていく方が楽だ
0170166
2009/04/26(日) 18:42:27ID:???書店きてみましたがPython本の品薄っぷりに泣きました。
暫らくWeb上で調べながらやってみます!
0171nobodyさん
2009/05/05(火) 22:09:13ID:???0172nobodyさん
2009/05/07(木) 09:59:48ID:???0173nobodyさん
2009/06/10(水) 09:52:49ID:???最近、BlackJumboDogを使ってWindowsXPでWEBサーバを立てたのですが
PerlとRubyは動くのにPythonが動きません。
cmdから「perl -v」「python -v」「ruby -v」をやるとエラーの雰囲気は無い応答が帰ってくるので
問題ないとおもうのですが、何か原因がわかるかたいますか?
ちなみに「python -v」を打ち込むとperlやrubyではバージョンとかが出るのですが
pythonだけ対話モードみたいなのに入ります。
cgiの中身は以下のようになってます。
#!/python
# -*- coding: utf-8 -*-
import cgi
import cgitb
cgitb.enable()
print "Content-Type: text/html"
print "hello world."
アクセスすると真っ白です。
どなたかお助け願います。お願いしますよろしくお願いします!
0174nobodyさん
2009/06/10(水) 22:27:31ID:???ハードコーディングされてるっぽいから
単にPythonに対応してないんでしょ。
ApacheやIISの方が、導入敷居が高くても
結局は情報がたくさんそろっててはまりづらいと思うよ。
0175nobodyさん
2009/06/11(木) 21:30:24ID:???とかって書けば動いたぞ
0176nobodyさん
2009/06/12(金) 03:16:41ID:???0177nobodyさん
2009/06/12(金) 10:26:51ID:???0178nobodyさん
2009/06/12(金) 15:47:46ID:???0179nobodyさん
2009/06/22(月) 21:45:25ID:???0180nobodyさん
2009/06/28(日) 01:29:28ID:???0181nobodyさん
2009/07/03(金) 06:25:05ID:???┌─┐
│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
0182nobodyさん
2009/07/29(水) 23:21:51ID:???0183nobodyさん
2009/08/07(金) 02:25:12ID:tKq4DxW5CGIの内部で、BeautifulSoupを使いたいのですが、
BeautifulSoup.pyを、与えられたスペースに置けば使うことができるのでしょうか?
0184nobodyさん
2009/08/07(金) 03:07:58ID:tKq4DxW5置けば使うことができる。
しかし、BeautifulSoupの場合はコード量が多すぎるのか
memory errorになる。
(もっと小さいオリジナルライブラリなら動く)
0185nobodyさん
2009/08/11(火) 21:51:30ID:???0186nobodyさん
2009/08/15(土) 04:13:53ID:LWrcnMLs0187nobodyさん
2009/08/20(木) 22:09:34ID:???http://pc11.2ch.net/test/read.cgi/pcnews/1250773470/
0188nobodyさん
2009/10/03(土) 23:03:34ID:9tHx6UBFサーバサイドで使う場合でもPHPよりも優れたパフォーマンスを出せるかどうか心配です。
0189nobodyさん
2009/10/03(土) 23:32:03ID:???0191nobodyさん
2009/10/09(金) 22:11:15ID:???0192nobodyさん
2009/10/10(土) 14:11:35ID:???0193nobodyさん
2009/10/16(金) 14:24:53ID:???動的な言語での最速はLuaか最近のJavaScriptじゃないかな。あとRuby1.9とか。
Pythonは、mod_python使うとPHPより速かった。
ただ共有サーバではmod_python使えないので、PHPより速いかどうかは「環境依存」としか言えない。
あとPHPとPythonの速度を気にするよりも、フレームワークやライブラリの速度を気にした方がいい。
0194nobodyさん
2009/10/16(金) 14:26:58ID:???あーごめん、追記ね。PHPはAPS入れるとmod_pythonより速いかもしれない。
そういうのも含めて、やっぱり「環境依存」だね。
Pythonは決してPHPより遅いわけではない。でも環境によりけり。
0195nobodyさん
2009/10/17(土) 04:57:06ID:???0196nobodyさん
2009/10/17(土) 07:39:06ID:???日本語が下手過ぎて読み難いけど速度改善の参考にはなる
0197nobodyさん
2009/10/17(土) 16:20:53ID:???ttp://wiki.python.org/moin/PythonSpeed/PerformanceTips
0198nobodyさん
2009/12/04(金) 02:12:35ID:???作り直したりしないのかな
0199nobodyさん
2009/12/04(金) 03:31:26ID:???やるなら実質 gae 一択?
pylons しこしこいじってるんだけど、寂しいよ。
0200nobodyさん
2009/12/04(金) 11:45:04ID:???django
あるいは
wsgi で自作 Framework
0201nobodyさん
2009/12/04(金) 11:52:20ID:???0202nobodyさん
2009/12/04(金) 12:06:56ID:???最初はpylonsやtgにも期待してたんだけど。
0203nobodyさん
2009/12/04(金) 14:48:24ID:???0204199
2009/12/05(土) 00:23:15ID:???web.py の minimal 感良いですね。知らなかった。pylons も minimal な感じが気に入ったんだけど、こっちのが良いかな。
でも pylons より情報少ない感じですね?
0205nobodyさん
2009/12/11(金) 15:26:40ID:???0206sage
2009/12/14(月) 17:21:38ID:DjxYEeHj■ このスレッドは過去ログ倉庫に格納されています