2013年17WebProg18: Python CGI (355) TOP カテ一覧 スレ一覧 2ch元 削除依頼
[基地外]osCommerce系[隔離スレ] (951)
オサーンのプログラミング奮闘記[PHP] (133)
OpenPNE その6 (574)
まあ。ほとんどないとおもうが。。 (132)
CGIとJSPとPHPどれが得か? (177)
JavaScript コメントの謎 (121)

Python CGI


1 :2006/11/14 〜 最終レス :2013/09/18
PythonでCGI
PyJUG:ドキュメントはここ
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

2 :
mod_pythonを排斥するとはゆるせない!

3 :
まぁ、この板ではサーバーサイドは何でもcgiって呼ぶからなぁ

4 :
mod_python本部
http://www.modpython.org/
mod_pythonマニュアル日本語訳
http://www.python.jp/doc/contrib/modpython/

5 :
ネタがないかな。というか、あまりPython-CGIってやらないかな。

6 :
最小文字数
#!/usr/bin/env python
print'\n'

7 :
print 'Content-type: text/html\n'

8 :
カウンター
#!/usr/bin/env python
file="log.dat"
count=int(open(file).read())+1
open(file,'w').write(count)
print"""content-type:text/javascript
document.write("%s")""" % count
呼び出し側
<script src="counter.cgi">

9 :
>>1
Guidoたんのプレゼンも入大回転。
Using Python for CGI programming
http://www.python.org/doc/essays/ppt/sd99east/index.htm

10 :
本スレ見てて思ったんだけど、
urllib2とかcookielibのインターフェースって結構使いづらい&分かりづらい
ような気が・・・
cookielibとかperlのモジュールを参考にしてますとか堂々と書いてるのも
どうかと思う

11 :
>>10
あべし?

12 :
>>11
…ひでぶ???

13 :
>>11
>>10参照。

14 :
ネタ降ってみるか。
CGIでも使えるframeworkってある?
DjangoもTurbogearsもCGIでは使い物にならん。

15 :
TurboGearsはCGIでの設置方法がよくわからんかったから諦めたけど
Djangoは結構普通にCGIで動いたよ。
DB使えないとかは当然ダメだけど。

16 :
PythonでつくったCGIをコマンドラインから実行してテストしたいんだけど、
リクエストパラメータの渡し方が分かりません。
echo 'QUERY_STRING: key=value' | python hoge.cgi
としてみてもだめでした。いい方法ないですか。

17 :
環境変数QUERY_STRINGに値を入れておく。
Windowsなら
set QUERY_STRING=key1=value1;key2=value2
python hoge.cgi
こんな感じじゃだめかい

18 :
>>17
それでうまく行きました。サンクス。
そういやそうだよな。なんで気づかなかったんだろう。

19 :
Pythonでcgiモジュール使ってるんだけど、HTTPレスポンスのステータスコードを指定する方法が分からん。
知ってたら教えてちょ。

20 :
>>19
print "Satus: 404 Not Found"
or
print "Status: 301 Moved Permanently"
print "Location: /some/where/index.html"
でいけた。cgiモジュールは関係なかったorz。

21 :
CGIをPythonで書くとして、テンプレートエンジンはどれがおすすめでしょうか。

22 :
>>14
WSGI サポートした app 作れるなら CGI で動かせる希ガス
ttp://d.hatena.ne.jp/tokuhirom/20061128/1164680664
Zope とか Django あたりは WSGI サポートしてないかもだが、TurboGears
とか Pylons とかはサポートしてたはず
使ってはいないんでわからんが

23 :
Djangoは動くってば

24 :
cgi.FieldStorage()を使ってもうまくパラメータを取得できないような気がする
mod_python の util.FieldStorage(req) でようやっと取得できた

25 :
cgi.FieldStorage()のマニュアルをよく読め。
ttp://www.python.jp/doc/release/lib/node457.html
ttp://www.python.jp/doc/release/lib/node458.html

26 :
ああ、そもそもCGIとして呼ばれたものとmod_pythonから呼ばれたものを同類に考えるなって事かな・・・

27 :
1 1

28 :
W Server 2003 の IIS 7 で python CGI っていう組み合わせは変態ですか?

29 :
>>28
自覚はあるみたいだね。

30 :

そんなヘンタイさんのためのページがあったのでメモ
ttp://code.djangoproject.com/wiki/DjangoOnWindowsWithIISAndSQLServer

31 :
http://code.djangoproject.com/ticket/2407

32 :
age

33 :
PythonでPerlで言う%ENVってどう取得するの?

34 :
import os
os.environ

35 :
>>34
超ありがとう

36 :
a

37 :
b

38 :
bcpl

39 :
pythonでContent-type: application/octet-stream
と指定したいんだけど、どうすればいいの

40 :
setHeader(name, value):
    Sets an HTTP return header "name" with value "value", clearing the
    previous value set for the header, if one exists. If the literal
    flag is true, the case of the header name is preserved, otherwise
    word-capitalization will be performed on the header name on
    output.
    Permission
        Always available

41 :
できないんですね。諦めました

42 :
>>39
CGIならそのまま
print "COntent-Type: application/octeat-stream"
print ""
でいいんじゃないの?

43 :
>>24
昔、
f = cgi.FieldStorage()
g = cgi.FieldSrorage()
とやると、g には情報が入ってないということに気づいてなくて、
ハマった思い出がある・・・、それかも?

44 :
age

45 :
>>43
それ、今でも時々はまるわw

46 :
無料で、Python が使えるレンサバ
  - http://land.to/
  - http://www.xrea.com/
有料だけど、Python が使えるレンサバ
  - http://www.sakura.ne.jp/
  - ・・・

47 :
有料はほかにもいろいろあると思うけど、
無料は上2つしか見たこと無い、・・・

48 :
好きなの選べや
http://www.google.com/search?hl=en&q=free+hosting+python&btnG=Google+Search

49 :
> 好きなの選べや
換言すれば国内だと上記二つということか

50 :
@pages

51 :
現在だと実質ひとつか・・・

52 :
なんかPythonでつくられたcgiってあんまり見ないね
海外だと多いの?

53 :
http://adwords.google.com/support/bin/answer.py?hl=jp&answer=44500

54 :
Pythonで作られたブログってない?

55 :
weblog written by python
これがどれだけ意味不明なフレーズであるか、書く前に気づかないものだろうか

56 :
>>55
これが噂の中二病か

57 :
>>55
Weblog written "IN" Pythonな。
中学生は勉強しろよ。

58 :
Portable PythonにTurboGearsぶちこんだ人って、2chになら1人くらい居ますよね

59 :
>>57
それもちげぇよw

60 :
>59
勉強しろよ厨房

61 :
>>57であってるとおもうけど、なにが違うの? >>59

62 :
59=55の存在が一番違う

63 :
普通、powered byを使うように思うが。
文章すらPythonで書かれていればどうか知らんが。

64 :
少し語弊があるか。
Pythonで書かれたブログシステムはwrittenでいいが、
それを利用したWeblogはpowered。

65 :
written "by"の話をしてるんでしょうに

66 :
いずれにしても59=55はいらない子。

67 :
それよりcgiの話しようぜ!

68 :
written by Guidoとはいうけど、written by Pythonとは言わないだろ。
勉強しろよ>中学生

69 :
なんで勝手に55=59にされてんのか意味不明だが、
>>57は明らかにアホ。
外人に聞いてみろよ。ブログの内容pythonで書いてるのと勘違いされるぞ

70 :
まだ悔し紛れに粘着してるのか
もういいだろ
written in Pythonでブログの内容をPythonで
書いてると勘違いするような基地外はいないよ
お前くらいしか

71 :
なんでつまらない話題で盛り上がってるの?バカなの?

72 :
だよな。
written for Pythonで終わりの話だろ。

73 :
>>69
>外人に聞いてみろよ。
知り合いのロシア人に聞いてみたけど「わかんね」って言ってた(www>

74 :
54>>
http://wiki.python.org/moin/PythonBlogSoftware
ここから探してみて。

75 :
>>74
Python Desktop ServerがZope Baseとかないわ(www

76 :
written by pythonでも通じると思うよ。
「パイソンさんによって書かれています」みたいな感じでしょ?

77 :
Pythonが自分の意志を持って書いたんだったらいいんじゃね。

78 :
まだやってんのかww

79 :
pythonのCGIなんて使う人いないんです

80 :
粘着してる暇があったらpygameの翻訳しろよ>中学生

81 :
根性曲がりきった大人が多すぎwwWWwwww

82 :
他人のこと考える暇があったらpygameの翻訳しろよ>引きこもり

83 :
pygame のドキュメントが読めないの?

84 :
pygame関係ないじゃん

85 :
パイつながりだろ!

86 :
そんなこと言ったら、pychinko まで python と
関係あることになるぞ

87 :
pythonでcgiやるときに、CSSでデザインするのはどうやってやるの?

88 :
ちがうよぜんぜんちがうよ

89 :
>>87
釣りか?
HTMLに埋め込むか、
ファイルにCSSを書いて @import か linkタグで読み込ませる

90 :
<link rel="stylesheet" href="file.css">

91 :
>>89,90
ありがとう!、そうやればいいのか。

92 :
GoogleはpythonでCGI?
今日からperlやめてpythonにしよ。

93 :
Googleが通常使う言語のひとつにしてるだけだがな・・・

94 :
Pythonで配列を代入するにはどうすればいいですか?
例えばPHPで
$A = array(
"{$ONE['test']}",
"{$TWO['test']}",
"{$THREE['test']}"
);
こういうのをPython式に置き換えると?

95 :
>>94
配列とはちょっと違うが辞書とリストならこんな感じ?
ONE = { 'test':'hoge' }
TWO = { 'test':'sage' }
THREE = { 'test':'age' }
A = [ONE['test'],TWO['test'],THREE['test']]

96 :
A = {
'ONE':'test',
'TWO':'test',
'THREE':'test'
}

97 :
出来ました!
ありがとうございました

98 :
連想配列と辞書とリストの違いが解りません。
どういうこと?

99 :
変数が定義されているか判定したいんですが
PHPでいうissetみたいなものはありますか?

100 :
ありません。
NameErrorやAttributeErrorを捕まえてください。

101 :
具体的にどうやればいいんでしょうか?

102 :
try:
  a
except NameError:
  print "aなし"
else:
  print "aあり"
変数があるかないか調べなきゃいけないようなコードを書くほうが間違ってると思うけどな。

103 :
>>102
回答ありがとうございます
プログラム(まずはCGI)の勉強のためにPythonを選びました。
何から始めたらいいのか分からなかったので配付されている
PHPのスクリプトをPythonに移植してみようと思い立ちました。
まともに動くようになったら指摘された箇所を見直して見ようと思います。
そこまで理解が深まればの話ですけど。

104 :
>>> try:
... a
File "<stdin>", line 2
a
^
IndentationError: expected an indented block
except打つまえにこんなの出る

105 :
>>104
http://flickr.com/photos/shinji_i/2282608491/
インデントが必要だと書いてあるだろう

106 :
>>105
ありがとうございます。できました
>>> a='test'
>>> try:
... a
... except NameError:
... print "a none"
... else:
... print "a is set"
...
'test'
a is set
>>>
...このピリオド3つが最初のインデントだと思い込んでました

107 :
【サンタクロース、トナカイの酒気帯び運用。有罪判決に、マジ逆切れ&大暴れw(動画有り)】(ZDNet)
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

108 :
locals()
という関数を呼ぶと自分で定義した変数とか関数とかの一覧(+α)が
返ってくるので、それを使うという方法もある。
>>> a=1
>>> 'a' in locals()
True

109 :
web.pyのスレはありますか?

110 :
ありますん

111 :
どっちだよ

112 :
web2py
http://pc11.2ch.net/test/read.cgi/php/1228881994/

113 :
web.pyじゃないです><

114 :
PHP捨ててPythonに乗り換えようとしたけど、
日本語訳マニュアルに誤変換が多すぎてバカっぽいからやめるわ

115 :
PHP使ってる人はPythonやっても幸せになれなさそうだよね・・・
PHPとともに生きるが幸せ

116 :
ふむ。
一つの言語だけに絞るのもいいかも知れんね。
趣味ならば。

117 :
mod_pythonでHTMLがうまく表示できないのはなぜ?
from 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の引数のテキストがそのまま表示されてしまう。

118 :
req.headers['content_type'] = 'text/html'

119 :
python 2.5 の cgi プログラムが動作しません。どのような原因が考えられますでしょうか。
自分で確認した事項等は以下の通りです:
・ ローカルでは動作する
・ パーミッションは755になっている
・ アスキーモードで転送している (バイナリモードでも試してみた)
・ 文字コードは UTF-8 で、プログラム内にも # -*- coding: utf-8 -*- としている
・ import したのは cgi, urllib, re, time
・ cgitb を試みたが、使えていない

120 :
shebang

121 :
Pythonへのパスが間違ってるんじゃねえの?

122 :
apacheのログみろ

123 :
>パーミッションは755
これだろ

124 :
>>121 Python へのパス
同じ場所に別のcgiプログラムを置いたところ、パス指定が同じで正常に動作しますので、それはないと思われます。
>>120 >>122 shebang / apache
当方詳しくないものでわかりません、調べてみましたが使い方とかが…
正常に動くプログラムを部分的に改変することにより再現しようとしたら、文字コードを UTF-8 に (同時に、パスの次の行に
# -*- coding: utf-8 -*-
と) したらエラーが発生することがわかりました。

125 :
しね

126 :
>>124
UnicodeEncode(Decode)Error
とか出てない?

127 :
>>126
ローカル実行時は出ていません。
サーバ実行時はこんだけです:
500 Error - Internal Server Error
CGIもしくはSSIが正しく動作していません。

128 :
>・ cgitb を試みたが、使えていない
import cgitb; cgitb.enable()
これでもだめ(500 Error - Internal Server Error がでる)って言う意味か?

129 :
>同じ場所に別のcgiプログラムを置いたところ、パス指定が同じで正常に動作しますので、それはないと思われます。
動くものと動かないもののソース晒せ

130 :
解決しました
ありがとうございました

131 :
>>128
そのとおりです。
>>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 -*-
を追加しただけ

132 :
target.read()
二回実行して問題ないんかな

133 :
>>132
UTF-8 でないものは2回実行しても動きます。
UTF-8 のものは1回でも動きません。
どうやら来年に持ち越しのようですね…。

134 :
池■田大■作の本名はソン・テチャク。小泉純一郎、小沢一朗は朝鮮人。
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ちゃん運営=統一協会上層部=層化上層部=自民党清和会=野党の朝鮮人ハーフの政治家=
与党の朝鮮人ハーフの政治家=金 正日(キム・ジョンイル )=読売サンケイ=小沢十朗
ユダヤ人=ロックRー=ブッシュ=クリントン=ヒラリー=アドルフ・ヒトラー=オサマ・ビンラディン
毎日新聞スレを荒らしてる奴らも統■一教会の可能性が高い。
荒らしは洗脳するために「ネトウヨ」などのレッテル付けレスを何千回もする。
現実には「ネトウヨ」などは存在しない。
http://changi.2ch.net/test/read.cgi/ms/1230363385/

135 :
>>131
つまりファイルは出来てないんだね

136 :
>>135
公開できない文字列を含む部分などを隠していますが、テストコードの段階であることは確かですね。
しかし、より小さいコードで試した結果などから、原因は文字コード周りにあると考えてよいと思います。
この点についてはサーバ管理者に問い合わせましたが、年末につき返信待ちであります。

137 :
よいお年を

138 :
python初心者がはまる典型的なパターンじゃないかな

139 :
>>136
「ファイルは出来てない」はプログラムが完成していないという意味じゃなくて
<ここまでに死んでるのか
data = open(filename, "w")
data.write(target.read())
data.close()
<この辺で死んでるのか
print target.read()
を知りたかった訳なんだけど
どう?

140 :
年明けとほぼ同時に解決しましたw
悪の元凶: Windows メモ帳
直接原因: UTF-8 には入れるべきでない余分なヘッダ (?) 3バイトがファイル先頭に挿入されていた
対策: バイナリエディタで開いて先頭3バイトを削除して保存しなおす

141 :
あけおめ

142 :
pythonってBOMに対応してなかったっけ?

143 :
>UTF-8 には入れるべきでない余分なヘッダ (?) 3バイトがファイル先頭に
BOMのことか
それを「UTF-8 には入れるべきでない」っつーのは言いがかりだな
まあそれが原因で shebang が利かなくなってたのは確かだが
Windows メモ帳 を悪の元凶と言うのは素人

144 :
>>142
python自体はBOM付いてても受け付けるけど
shellが解釈する時点でだめでしょ

145 :
悪の元凶: Windows メモ帳
に同意

146 :
△悪の元凶: Windows メモ帳
○悪の元凶: Windows メモ帳を使用

147 :
あけおめ!

148 :
大凶ワロタw

149 :
>>144
shebangを解釈するのはカーネルだけどね

150 :
Python CGI に <input type="submit"> および <input type="reset"> を書いたとします
それぞれをクリックしたら何が起こるんでしょうか?

151 :
>>150
submit…一緒に出力されているhtmlでsubmitの親ノードになってるformのactionに対して送信する
reset…一緒に出力されているhtmlでresetの親ノードになっているform内のinput/select/textarea等がクリアされる
PythonのCGIって言っても単にブラウザに向かってHTML(たまにCSVとかXMLとかバイナリとか違うものも吐くけど)
を吐き出してるだけなんで、普通のHTMLと同じ挙動をするだけだよ。

152 :
あーごめんなさい、書き方が悪かったみたいですね
その「送信された側」などの関係がわからないのです。

153 :
>>152
ブラウザの実相にもよるけど、大抵のメジャーブラウザはresetはサーバーとの通信を
行わずローカルだけでやるはずなので、送信元になるのが何であっても(静的HTMLでも、
PythonのCGIが吐き出したHTMLでも、PHPやPerlCGIが吐き出したのでも)同じ動きです。
formからの送信を受け取る側がPythonのCGIなら、↓参照
http://www.python.jp/doc/release/lib/module-cgi.html

154 :
>>153
そうです、そこ見てたんですよ。
Python 勉強しはじめて、ローカルで動くプログラムはいろいろ書いてはいるんですが
送信側と受信側との関係? というか…
FieldStorage() して getlist(name) というのはわかったのですが
どうやってデータをここに入れてあげればいいのかが…

155 :
>>154
他の言語(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をクリア

156 :
まったくないですね… なるほど Python に限った話じゃないからリファレンス見てもほとんど書いてなかったのか
上のコードの場合、FieldStorage() は python.cgi の中でするんでしょうか。これで合ってれば、ほぼ理解できました。

157 :
>>156
cgi.FieldStorage()は通信を受け取った側(>155のHTMLをそのまま使うとすると、おっしゃる通りpython.cgiの中で)
することになります。
↓に少しサンプルがあるので見てみてください。
http://www.python.jp/doc/release/lib/node561.html

158 :
なるほど、よくわかりました。ありがとうございます!
サンプルの方は既に見てましたよ〜。

159 :
ttp://www.amazon.co.jp/dp/4797341815/
入門書嫁。

160 :
問題がHTMLフォームの挙動を十分に理解していないことにあるとわかったので
http://www.kanzaki.com/docs/html/htminfo31.html htminfo32.html htminfo33.html を読んですっきりしました。

161 :
こういう人は、皮肉でもなんでもなくPerlCGIから入った方がいいような気がする。
WEBアプリ、特にCGIの入門者が躓きやすいところの情報は、未だにPerl CGIの頃の情報が一番豊富だろ。
んで、悪い癖がつく前にPythonなりRubyなりに移行すれば(またはしなくても)いいんじゃないかと。

162 :
ほぼ同意だけどPHPのほうが良いと思う。
WEBに特化してるだけあってそのあたりのことも
マニュアルで解説されてる。
ただし、Perl以上にPHPのほうが癖が強かったりする。

163 :
cgiの仕様は糞
checkboxの受け取り方とかタヒネとか思う

164 :
タヒネってなんですか?

165 :
人生そのものだよ

166 :
質問です。
PythonをWebアプリからはじめて
ゆくゆくはGUIもやってみたいなと思ってる初心者ですが
オススメの書籍は>>159の他にありますか?
Webアプリのセキュリティあたりにも触れているととても幸せです。
現在チュートリアル見てちまちまと勉強中です。
ソースコードがシンプルで好きになれそう…

167 :
pythonをwebで使うならDjangoのようなフレームワーク使うのが良いと思うね

168 :
>>167
いずれはそうしたいと思うんですが
はじめからFWやると細かい部分吸収されちゃって学習出来なさそうなんで
俺俺FW作りつつ勉強してみたいなと思ってます

169 :
Webアプリ作っていくならPython本より他の本読んだ方がマシだと思われ
身になること書いてないしサンプルコードとモジュールのソースコード読みながらやっていく方が楽だ

170 :
出先からですが、解答ありがとう
書店きてみましたがPython本の品薄っぷりに泣きました。
暫らくWeb上で調べながらやってみます!

171 :
WSGIの質問はここでいいですか?

172 :
どうぞ

173 :
質問です!
最近、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
print "hello world."
アクセスすると真っ白です。
どなたかお助け願います。お願いしますよろしくお願いします!

174 :
どうやらインタープリターの呼び分けが
ハードコーディングされてるっぽいから
単にPythonに対応してないんでしょ。
ApacheやIISの方が、導入敷居が高くても
結局は情報がたくさんそろっててはまりづらいと思うよ。

175 :
#!c:\\python\\python.exe
とかって書けば動いたぞ

176 :
何時の時代の話だ?ってレベル

177 :
それコピペ

178 :
winで鯖立てるレベル

179 :
意外と便利だよ。Excelファイルごにょごにょとか

180 :
#!/usr/bin/python

181 :

    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!


182 :
とりあえず保守

183 :
無料ホームページスペースでpython CGIを動かしたいと思っています。
CGIの内部で、BeautifulSoupを使いたいのですが、
BeautifulSoup.pyを、与えられたスペースに置けば使うことができるのでしょうか?

184 :
183です。自己解決しました。
置けば使うことができる。
しかし、BeautifulSoupの場合はコード量が多すぎるのか
memory errorになる。
(もっと小さいオリジナルライブラリなら動く)

185 :
etreeでがんばるしかないね

186 :
.

187 :
「Python 3.1.1」リリース
http://pc11.2ch.net/test/read.cgi/pcnews/1250773470/

188 :
PythonってLL言語の中では最速って本当ですか?
サーバサイドで使う場合でもPHPよりも優れたパフォーマンスを出せるかどうか心配です。

189 :
wsgi

190 :
>>188
Pythonは重いyo
さようなら

191 :
mod_pythonは?

192 :
ぷゅあCGIじゃない

193 :
>>188
動的な言語での最速はLuaか最近のJavaScriptじゃないかな。あとRuby1.9とか。
Pythonは、mod_python使うとPHPより速かった。
ただ共有サーバではmod_python使えないので、PHPより速いかどうかは「環境依存」としか言えない。
あとPHPとPythonの速度を気にするよりも、フレームワークやライブラリの速度を気にした方がいい。

194 :
>>193
あーごめん、追記ね。PHPはAPS入れるとmod_pythonより速いかもしれない。
そういうのも含めて、やっぱり「環境依存」だね。
Pythonは決してPHPより遅いわけではない。でも環境によりけり。

195 :
Python(>=2.5)+SQLite3爆速

196 :
ttp://newworld.ddo.jp/doc/PerformanceTips/
日本語が下手過ぎて読み難いけど速度改善の参考にはなる

197 :
下手な翻訳よりもこっち読め
ttp://wiki.python.org/moin/PythonSpeed/PerformanceTips

198 :
mod_pythonの仕様はないよなぁ
作り直したりしないのかな

199 :
python web framework って流行ってないの。
やるなら実質 gae 一択?
pylons しこしこいじってるんだけど、寂しいよ。

200 :
自分の場合
django
あるいは
wsgi で自作 Framework

201 :
gaeは糞w

202 :
django一択になってしまったなぁ。
最初はpylonsやtgにも期待してたんだけど。

203 :
web.pyでいいよもう

204 :
>>203
web.py の minimal 感良いですね。知らなかった。pylons も minimal な感じが気に入ったんだけど、こっちのが良いかな。
でも pylons より情報少ない感じですね?

205 :
CherryPyでいい気がしてきた。

206 :
werkzeugの話題がまったくでないなー

207 :
>>206
なんて読むの?

208 :
ヴェルクゾイク

209 :
http://d.hatena.ne.jp/perezvon/20090108/1231439151
ヴェルクツォイグ?

210 :
アルツハイマー

211 :
pythonでformの値を受け取る処理ってどんなの?
phpだと
<?php
$name = $_GET['name'];
echo $name;
?>
こんな感じだけど。

212 :
def post(self, name):
return ([name])

213 :
>>211
cgi関数で拾ってくれる。

214 :
そうなのか。知らなかった。

215 :
>>212
なにこれ?

216 :
wsgi

217 :
>>216
なんか勘違いしてる

218 :
えっ?

219 :
えっ?

220 :
えっ?

221 :
http://www.python.org/dev/peps/pep-0333/
def simple_app(environ, start_response):
"""Simplest possible application object"""
status = '200 OK'
response_headers = [('Content-type','text/plain')]
start_response(status, response_headers)
return ['Hello world!\n']


222 :
えっ?

223 :
def post(self, name):
return ([name])
第二引数に渡されるのはstart_responseです。

224 :
えっ?

225 :
お互い噛み合ってないのがそんなに楽しいの。

226 :
えっ?

227 :
なにそれこわい

228 :
えっ?

229 :
( ^ω^)えっえっ

230 :
( ^ω^)おっおっ

231 :
os.environ['hoge']
cgi.FieldStorage()['hoge']
の文字コードを調べる方法があれば教えてください。Pythonのバージョンは2.5です

232 :
def guess_code(s):
  if isinstance(s, unicode):
    return 'UNICODE'
  for c in ['utf-8', 'euc-jp', 'cp932', 'iso-2022-jp', 'latin-1', 'ascii']:
    try:
      u = s.decode(c)
      return c
    except (UnicodeDecodeError, LookupError):
      continue
    else:
      return 'unknown'
s = os.environ['hoge']
print guess_code(s)
s = cgi.FieldStorage()['hoge']
print guess_code(s)

233 :
>>211
import cgi;
f = cgi.FieldStorage()
value = f.getvalue('name','')
print value

234 :
>>232
ありがとうございます

235 :
初めてのPython読んでるけど、これ凄いじゃん。
流行ってないのが信じられないくらい。海外では流行ってるのかな?>PythonCGI

236 :
海外ではCGIが廃れてるよ

237 :
つかWSGIの話題ってここでおk???

238 :
おk

239 :
廃れてんのかよ、そりゃ残念だ

240 :
誤解ではないかと。
狭義の意味でのCGIは廃れていいと思う。重いから。
FastCGIで自由にプロセスをまわしたい。

241 :
廃れてるつぅかPHPが圧倒的に盛んなだけ。
海外でも無料のレン鯖はCGIでPHP使うなら有償ってのが普通

242 :
>>240-241
なるほど。
そこらへんの共有レンタルサーバーじゃmod_pythonもFastCGIも使えなさそうだから、CGIとして使う機会はないのかも…
クライアントアプリ作るならC#のほうがよさそうだし、おとなしく遊び&学習目的にして、PHPで書くか…
ありがとうございました。

243 :
俺が知ってるとこだと@pagesがPython使える
国内の無料鯖
今の募集状況知らんけどphpも使えるし垢取れたらとっとけば?

244 :
xrea

245 :
あれ?xreaも使えるんか
んじゃそっちの方がいいか

246 :
Pythonが使えるサーバ一覧
ttp://python.rdy.jp/wiki.cgi?page=PythonAvailableServers

247 :
Pythonのお勉強
でもPerlのwiki(笑)

248 :
いや、ただのCGIとしてなら有料鯖なら大抵動かせるんだけど、FastCGIは動かせなかったり、バージョンが2.3だったり…
バイナリCGIとして動かすって手もあるんだね。
標準ライブラリだけで作るとしたら、どれくらいのサイズになるんだろう。

249 :
Python 2.6.5/3.1.2リリース
http://sourceforge.jp/magazine/10/03/23/048255

250 :
wsgiがあればpythonのフレームワークなんていらないのだろうか

251 :
うん

252 :
RoR に感化されたので PoR 作ってみた
wsgi 使って案外あっさり作れた

253 :
(´・ω・`)

254 :
wsgiでphpで書いてあるソフトのアドオンつくれないのかな
をwordpressとか

255 :
(´・ω・`)

256 :
(´・ω・`)

257 :
(`・ω・´) age

258 :
(´・ω・`) nullpo

259 :


260 :
web.pyは素晴らしいなー

261 :

http://werkzeug.pocoo.org/wiki30/files/wiki30.mp4

262 :
age

263 :
pythonでcgi書いてる奴少ないんだな
hello worldから先に進まん俺はどこへ行けば……。

264 :
djangoスレへどうぞ

265 :
墓場に行けということですね

266 :
いいえ墓場ではなくて温泉です

267 :
アッー!

268 :
名前だけみてcherrypyを選んだ

269 :
>>263
書いているよ
人に教えられるほどではないけど

270 :
    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!

271 :
PythonでのCGIの勉強をしようと思っております。
PerlではTemplateToolKit、PHPではSmartyなどのテンプレートエンジンがありますが、Pythonでは一般的に
テンプレートエンジンとしてどういったものが使われているのでしょうか?
また、PerlのCGIモジュールのようにCGIを利用するためのモジュールはありますか?

272 :
tempita
import cgi

273 :
これも便利
import cgitb

274 :
import cgitb; cgitb.enable

275 :
>>263
最近、pythonでHTTPレスポンスヘッダを取得する装置とか作った程度のレベル
まだレベル的に早いと思ったけどpythonクックブック注文して入荷待ち状態

276 :
cgiとcheetahの日本語リファレンスってないの?
検索しても、比較サイトくらいしか出てこないんだが

277 :
Pythonの勉強をしているのですが、良質な掲示板のサンプルはありませんか?
PythonCGI自体が少ないので、良質なものを取捨選択するのがなかなか難しいです

278 :
Perlとかの掲示板を移植する作業をしてみてはどうだろうか。

279 :
ありがとうございます
そういった作業などでも勉強できると思うのですが、
まずはPythonでCGIを作る上でのノウハウというか効率的な書き方や、通例などを勉強したいと思っており
既存のソースコードを読みたいと考えています。

280 :
wsgi

281 :
形から入ろうとして結局何もしないの典型的なパターン

282 :
こう寒いと温泉に入りたくなる

283 :
参考になるレベルじゃないけど、簡単なお題を決めて
試行錯誤すると気楽だし使い回しできるかもね
入力必須チェックとかメールアドレスチェックとか

284 :
自分でテンプレート作るのはなかなか楽しい

285 :
>>284
Jinja2かMakoでいいじゃん。

286 :
Tornado1.2リリース
ttp://groups.google.com/group/python-tornado/browse_thread/thread/62d598b0e4e06b62/87f3c68827130bdf

287 :
誰かみんPyのO/Rマッパーかhtmlテンプレートのソース晒してくれないか
打ち込んだは良いがエラー発生するわ面倒くさいわで駄目だわ

288 :
漏れはいらんけど
ほれ
ttp://coreblog.org/ats/stuff/minpy-web-support/
ttp://coreblog.org/ats/stuff/minpy_support/frontpage

289 :
>>288
おー駄目元で聞いてみたんだけどどうもありがとう!
ソース写経するの間違えたりして大変なんだよね

290 :
馬鹿には無理

291 :
しっかしpythonスレはことごとく廃れるな
なぜだ

292 :
答えは簡単、Pythonに需要がない

293 :
個人的には重宝してるけど、書き込む話題とか持ってないからなあ

294 :
linuxでは必須になりつつあるだろ

295 :
なんでも入ってるごった煮
それがLinuxだからな

296 :
>>294
Linux Standard Base 3.2(LSB3.2)にPythonが入ったからね

297 :
今でも鯖管理関係もperl出来ないとつらいかな?
Pythonだけで戦えないもんかな〜

298 :
遅かれ早かれ置き換わるだろうけどな

299 :
GentooではPython必須

300 :
>>297
うちは perl 駆除続けてる
ほとんど完了しつつある

301 :
>>297
perlを使わない事は出来るけどperlを削除することは出来ない

302 :
Perlでアプリ書くことはもう無いけど
sed/awkの代替・短いスクリプトはperlがまだ適当じゃない?
Textutilsみたいなもんで使えて当たり前的な。サーバ管理なら特に。

303 :
CentOSでもPython抜くとカーネル死ぬんだってなw

304 :
なんじゃそりゃ

305 :
ttp://d.hatena.ne.jp/s025236/20110325/p1
これだな

306 :
馬鹿を相手にするな

307 :
PHPのソースPythonに置き換えするのって簡単かな?
PHPはサンプル本がたくさんあるからそこからインスピレーションを得ないとどうやって作っていいのかわからん

308 :
アリだけとマンドクセ

309 :
ただの置き換えなら意味が無い
コンセプト理解したら Python の利点が生かせるものを新たに書き起こす方が良い
そういう意味では CGI よりも WSGI の方が良いでしょう

310 :
誘導されてきました。ここであってますでしょうか。
pylonsを勉強し始めたんだけどいろんなサンプル見ても
各コントローラでコミット文を書いてるだけどそういうもん何でしょうか
トランザクションマネージャーみたいのものってないのしょうか

311 :
やっぱPHPが強すぎるのか…?

312 :
PHPとかオワコン。
すぐにPythonにとって変わられる

313 :
そうか安心した

314 :
PHPは鯖サイドの言語だから仕方ないお
PythonやPerlでネイティブなGUIアプリ書けるけどPHPでは無理

315 :
PHPは嫌いだけど
PHPでもGUIは作れるよ

316 :
pythonはともかくperlのGUIライブラリとかほとんどメンテされてないからなぁ
phpのGUIと同レベル

317 :
単に出来るのと実用的に問題ないのとは超えられない壁があるからな

318 :
WSGIがもっと普及すれば…

319 :
WSGIってただの概念じゃなかったっけ?
テンプレート間の互換性の為の

320 :
何言ってんの?

321 :
>>314
ネイティブなGUIアプリはCとかC++とかDelphiとかじゃないとムリだろ。

322 :
つwxPython

323 :
wxPHP

324 :
ネイティブの意味を判ってない馬鹿がいるな

325 :
Pythonの正規表現について伺います
re, sub, replace, etc...などPythonには沢山の正規表現モジュールがありますが
下記のPHP正規表現の否定はPythonではどう書いたらいいのでしょうか?
if (!ereg("{$_SERVER['PHP_SELF']}", "{$_SERVER['REQUEST_URI']}"))
条件式の判定に使いたいのです。

326 :
ム板で聞いた方が良い

327 :
解りました、移動します
ム板はCGI嫌うからサーバー変数は隠したほうがいいかな
行ってきます

328 :
>>325
Python の正規表現モジュールは "re" 一個だと思っていいよ。
他はstr.replace や re.sub 等のメソッドや関数のことだと思うけど、
PHPの ereg に相当する処理だったら re.match がそれにあたります。
ただ、元のPHPのコードもそうなんだけど、正規表現を書くところにURLの文字をそのまま渡すのは
URLが正規表現と解釈されてしまうのでよくない。(大抵のケースではきちんと動くので実害は少ないだろうけど)
# NO:
if not re.match(self_url, request_url):
# YES:
if not re.match(re.escape(self_url), request_url):
この例じゃ正規表現使う必要は全然なくて、単純に文字列の比較
if self_url != request_url:
で済むはずです。

329 :
友達の非公開用自鯖でPython3でCGIを勉強したのは良いんだけど
Python3が使えるレンタルサーバが無い

330 :
VPSなら自分で入れられるだろ

331 :
そんなものがあったのか

332 :
pyramidのドキュメント増えてきた

333 :
ASSCI出版の標準Djando 
第11章テンプレートシステム244P-225Pの
サンプルコードについて質問です
-----テンプレート部分----
{% upper %}
This will appear in uppercase {{ your_name }}
{% endupper %}
-----タグ用の関数部分-----
def do_upper(parser, token):
nodelist = parser.parse(('endupper'))
parser.delete_first_token()
return UpperNode(nodelist)
class UpperNode(template.Node):
def __init__(self, nodelist):
self.nodelist = nodelist
def render(self, context):
output = self.nodelist.render(context)
return output.upper()
register.tag('upper', do_upper)
このサンプルは意図通りに動きました。しかし、
return UpperNode(nodelist)でUpperNodeクラスを呼ぶと
何故def render〜のブロックが実行されるのか理解できてません。
自動で呼ばれるのはコンストラクタの__init__メソッド
だけだと思ったのですが。
renderメソッドがどのように実行されたのか教えて貰えないでしょうか。

334 :
こぴぺ乙

335 :
pyramid

336 :
保守

337 :
馬鹿には無理

338 :
今、web.pyでC/S型のコミックビューア作ってます。
ローカルサーバに保存してある(jpg).zip形式のコミックデータを、iPadやAndroid等のブラウザで読めるようにすることが目標です。
そこで、質問なのですが、現在、(jpg).zip書庫の取り扱いで悩んでいます。
zip書庫を解凍することなく、中身のjpg画像を取り出し、HTMLとして表示する、にはどうすればいいのでしょうか?
zipfileモジュールを使って、zip書庫からjpgデータを取り出し、変数に格納することはできました。
が、それをブラウザで表示できるようにする方法がわかりません。
ちなみに、変数に格納したjpgデータをprintしてみたら、プロンプトにバイトコード(?)が出力されました。
よろしくお願いします。

339 :
MHTMLでも使おうかなって思ったがどうなんだろう

340 :
>>338
ヘッダーでContent-typeをjpegにしてからprintしてる?

341 :
「Content-type python」などのキーワードで、ググってたら、
たまたま画像を表示するサンプルコードを公式ページで見つけたので、それを真似したところ、うまくいきました!
http://webpy.org/images
openメソッドで開いた画像データをreadメソッドで読み取り、それをreturnすると、画像を表示できるんですね〜。
自分は、「HTMLのタグで画像を直接指定する(こういうやつ→<img src="./static/gazou.jpg" />)」という表示法しか知らなかったので、行き詰ってました。
どうもありがとうございました。

342 :
あれ?みんpy web公開で賑わっているかと思ったが。

343 :
>>342
うおおおおおおおーーーー!!!!!!!!!!!
知らなかった、マジサンクス。
来年、>>342にいいことがありますように( -人-)
ttp://coreblog.org/ats/minpy-web-is-now-free-to-read

344 :
ム板で糞本として盛り上がってる

345 :
この本読んだひといますか?
感想聞かせてください
WSGIウェブプログラミング
ttp://www.amazon.co.jp/dp/4877832882/
書評悪すぎてわろす

346 :
この書評みて買おうとは思えないよねえw

347 :
小さいの作るならflaskでいいし、大きいの作りたいならどじゃんごやpylons/pyramidつかえばいいしな。
わざわざCGIどうのこうのしようと思わないな

348 :
いや、PythonはCGIだと思う。
というかPythonはCGIしか使えないレンタルサーバが多いし。

349 :
なぜにレンタルサーバー限定?

350 :
werkzeug

351 :
CGI用のsessionライブラリはないのかな?
関連のキーワードでぐぐると、自作したって話題がちょいちょい出てくるだけなんだが

352 :
自作したよ

353 :
「Python CGI WSGI」スレがたつのは2030年になるな、このレス数だと

354 :
前はあったよ

355 :2013/09/18
garagara
TOP カテ一覧 スレ一覧 2ch元 削除依頼
GoogleAPIってどうよ? (308)
ソース表示禁止 (156)
インストールマニアックス4 azure祭り (149)
(´-`).。oO(なんでだろ?) (435)
bbs.cgi開発【WebProg板】 (185)
GoogleWebToolkit[GWT]について語ろう (234)
--log9.info------------------
80年代がロボットアニメの最盛期だった (162)
主人公が主夫をやるアニメを作ってほしい (109)
今期アニメ雑談スレ 25 (341)
【何故】イナズマイレブン・黒子のバスケ・忍たま【腐向けに】 (181)
メジャーな局で放映すべきだったアニメ (477)
富野監督「今のアニメはその時だけ売れればいいと思っている」 (837)
【アニメ】「TBSアニメフェスタ2013」8月10日(土) (134)
やっぱAngel Beats!の音無ってクソだわ (464)
天元突破グレンラガンってどんな評価なの? (184)
神様のメモ帳 ネタバレスレ (711)
1期より2期の方が面白いアニメなんて存在するの? (157)
現代アニメについて考察・批評するスレ (268)
アニメは低視聴率の為、オワコン (610)
シリアスな笑いを感じるキャラやシーンを語ろう (135)
日常系アニメ最高傑作を決めるスレ (168)
神OPとか神EDはよく聞くけど糞OPとかって何がある? (394)
--log55.com------------------
30代以上がラノベ作家を本気で目指すスレ14
【アンチも】小説家になろう討論スレ【擁護も可】3
【なろうコン】ネット小説大賞26
【四度目は嫌な死属性魔術師】デンスケ総合スレ4
【一国一城】三度笠 総合スレ13【銀河中心点】
ライトノベル作家志望者が集うスレ 246
【Infinite Dendrogram】海道 左近 52
【ラピスの心臓】おぽっさむ/羽二重銀太郎5