Python CGI ..
[2ch|▼Menu]
2:nobodyさん
06/11/14 23:14:10 .net
mod_pythonを排斥するとはゆるせない!

3:nobodyさん
06/11/15 13:33:50 .net
まぁ、この板ではサーバーサイドは何でもcgiって呼ぶからなぁ

4:+++
06/11/16 17:28:37 .net
mod_python本部
URLリンク(www.modpython.org)

mod_pythonマニュアル日本語訳
URLリンク(www.python.jp)

5:nobodyさん
06/11/18 07:26:35 .net
ネタがないかな。というか、あまりPython-CGIってやらないかな。

6:nobodyさん
06/11/18 12:45:05 BbR6q3ov.net
最小文字数

#!/usr/bin/env python
print'\n'

7:nobodyさん
06/11/18 18:46:47 .net
print 'Content-type: text/html\n'

8:未テスト
06/11/19 19:08:52 .net
カウンター

#!/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:nobodyさん
06/11/23 01:04:44 .net
>>1
Guidoたんのプレゼンも入大回転。

Using Python for CGI programming
URLリンク(www.python.org)


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

11:nobodyさん
06/11/29 23:14:00 URfZB542.net
>>10

あべし?

12:nobodyさん
06/11/30 00:29:04 .net
>>11

…ひでぶ???

13:nobodyさん
06/11/30 16:25:25 .net
>>11

>>10参照。

14:nobodyさん
07/02/26 13:32:06 5UU9u3Sv.net
ネタ降ってみるか。
CGIでも使えるframeworkってある?
DjangoもTurbogearsもCGIでは使い物にならん。

15:nobodyさん
07/02/26 17:58:42 .net
TurboGearsはCGIでの設置方法がよくわからんかったから諦めたけど
Djangoは結構普通にCGIで動いたよ。
DB使えないとかは当然ダメだけど。


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

17:nobodyさん
07/02/27 14:06:35 .net
環境変数QUERY_STRINGに値を入れておく。
Windowsなら

set QUERY_STRING=key1=value1;key2=value2
python hoge.cgi

こんな感じじゃだめかい

18:nobodyさん
07/02/27 21:04:49 .net
>>17
それでうまく行きました。サンクス。
そういやそうだよな。なんで気づかなかったんだろう。

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

20:nobodyさん
07/02/28 12:09:53 .net
>>19

print "Satus: 404 Not Found"

or

print "Status: 301 Moved Permanently"
print "Location: /some/where/index.html"

でいけた。cgiモジュールは関係なかったorz。

21:nobodyさん
07/03/04 20:43:32 .net
CGIをPythonで書くとして、テンプレートエンジンはどれがおすすめでしょうか。


22:nobodyさん
07/03/04 23:42:21 .net
>>14
WSGI サポートした app 作れるなら CGI で動かせる希ガス
URLリンク(d.hatena.ne.jp)

Zope とか Django あたりは WSGI サポートしてないかもだが、TurboGears
とか Pylons とかはサポートしてたはず
使ってはいないんでわからんが

23:nobodyさん
07/03/07 22:39:21 .net
Djangoは動くってば

24:nobodyさん
07/05/18 21:12:25 .net
cgi.FieldStorage()を使ってもうまくパラメータを取得できないような気がする
mod_python の util.FieldStorage(req) でようやっと取得できた

25:nobodyさん
07/05/19 08:11:36 .net
cgi.FieldStorage()のマニュアルをよく読め。

URLリンク(www.python.jp)
URLリンク(www.python.jp)

26:nobodyさん
07/05/20 08:23:35 .net
ああ、そもそもCGIとして呼ばれたものとmod_pythonから呼ばれたものを同類に考えるなって事かな・・・

27:nobodyさん
07/10/31 13:28:00 sGG/8OO0.net
1 1

28:nobodyさん
07/11/12 15:47:23 .net
W Server 2003 の IIS 7 で python CGI っていう組み合わせは変態ですか?


29:nobodyさん
07/11/12 21:00:18 pM40V8Qq.net
>>28
自覚はあるみたいだね。


30:nobodyさん
07/11/21 12:49:36 3n2kypGE.net

そんなヘンタイさんのためのページがあったのでメモ

URLリンク(code.djangoproject.com)


31:nobodyさん
07/12/05 04:01:40 .net
URLリンク(code.djangoproject.com)

32:nobodyさん
07/12/06 02:06:23 .net
age

33:nobodyさん
07/12/06 17:27:02 4cNz8/z3.net
PythonでPerlで言う%ENVってどう取得するの?

34:nobodyさん
07/12/06 19:32:57 .net
import os
os.environ

35:nobodyさん
07/12/06 20:06:48 .net
>>34
超ありがとう

36:nobodyさん
08/01/07 23:59:40 .net
a

37:nobodyさん
08/01/08 17:07:19 .net
b

38:nobodyさん
08/01/09 12:10:27 .net
bcpl

39:nobodyさん
08/01/17 14:40:53 .net
pythonでContent-type: application/octet-stream
と指定したいんだけど、どうすればいいの

40:nobodyさん
08/01/17 18:11:42 .net
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:nobodyさん
08/01/17 19:48:54 .net
できないんですね。諦めました

42:nobodyさん
08/01/25 06:20:43 .net
>>39
CGIならそのまま
print "COntent-Type: application/octeat-stream"
print ""
でいいんじゃないの?

43:nobodyさん
08/02/07 17:51:11 .net
>>24
昔、

f = cgi.FieldStorage()
g = cgi.FieldSrorage()

とやると、g には情報が入ってないということに気づいてなくて、
ハマった思い出がある・・・、それかも?

44:nobodyさん
08/04/06 11:03:18 +rP1g4GY.net
age

45:nobodyさん
08/04/06 17:07:41 .net
>>43
それ、今でも時々はまるわw

46:nobodyさん
08/04/07 22:39:30 1NhJidwR.net
無料で、Python が使えるレンサバ
  - URLリンク(land.to)
  - URLリンク(www.xrea.com)

有料だけど、Python が使えるレンサバ
  - URLリンク(www.sakura.ne.jp)
  - ・・・

47:nobodyさん
08/04/07 22:41:38 .net
有料はほかにもいろいろあると思うけど、
無料は上2つしか見たこと無い、・・・

48:nobodyさん
08/04/08 03:16:35 .net
好きなの選べや
URLリンク(www.google.com)

49:nobodyさん
08/04/08 09:24:03 .net
> 好きなの選べや
換言すれば国内だと上記二つということか

50:nobodyさん
08/07/01 00:32:30 .net
@pages

51:nobodyさん
08/07/30 20:53:03 .net
現在だと実質ひとつか・・・

52:nobodyさん
08/08/05 22:08:19 vYQ6tZSI.net
なんかPythonでつくられたcgiってあんまり見ないね
海外だと多いの?

53:nobodyさん
08/08/05 22:35:19 .net
URLリンク(adwords.google.com)

54:nobodyさん
08/08/08 01:59:26 eg0CeB+P.net
Pythonで作られたブログってない?

55:nobodyさん
08/08/08 11:00:10 .net
weblog written by python
これがどれだけ意味不明なフレーズであるか、書く前に気づかないものだろうか

56:nobodyさん
08/08/08 11:14:15 .net
>>55
これが噂の中二病か

57:nobodyさん
08/08/08 11:14:55 .net
>>55
Weblog written "IN" Pythonな。
中学生は勉強しろよ。

58:nobodyさん
08/08/08 16:08:02 .net
Portable PythonにTurboGearsぶちこんだ人って、2chになら1人くらい居ますよね

59:nobodyさん
08/08/08 21:58:38 .net
>>57
それもちげぇよw

60:nobodyさん
08/08/08 22:51:23 .net
>59
勉強しろよ厨房

61:nobodyさん
08/08/09 02:05:18 .net
>>57であってるとおもうけど、なにが違うの? >>59

62:nobodyさん
08/08/09 10:18:50 .net
59=55の存在が一番違う

63:nobodyさん
08/08/09 11:53:19 .net
普通、powered byを使うように思うが。
文章すらPythonで書かれていればどうか知らんが。

64:nobodyさん
08/08/09 11:56:27 .net
少し語弊があるか。
Pythonで書かれたブログシステムはwrittenでいいが、
それを利用したWeblogはpowered。

65:nobodyさん
08/08/09 12:41:27 .net
written "by"の話をしてるんでしょうに

66:nobodyさん
08/08/09 12:59:56 .net
いずれにしても59=55はいらない子。

67:nobodyさん
08/08/09 13:28:59 .net
それよりcgiの話しようぜ!

68:nobodyさん
08/08/09 13:39:04 .net
written by Guidoとはいうけど、written by Pythonとは言わないだろ。
勉強しろよ>中学生

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

70:nobodyさん
08/08/09 17:04:59 .net
まだ悔し紛れに粘着してるのか
もういいだろ

written in Pythonでブログの内容をPythonで
書いてると勘違いするような基地外はいないよ
お前くらいしか

71:nobodyさん
08/08/09 17:13:00 .net
なんでつまらない話題で盛り上がってるの?バカなの?

72:nobodyさん
08/08/11 05:22:01 .net
だよな。
written for Pythonで終わりの話だろ。

73:nobodyさん
08/08/11 09:02:47 .net
>>69
>外人に聞いてみろよ。
知り合いのロシア人に聞いてみたけど「わかんね」って言ってた(www>


74:nobodyさん
08/08/12 22:31:30 hynniAyL.net
54>>
URLリンク(wiki.python.org)
ここから探してみて。

75:nobodyさん
08/08/12 23:37:44 .net
>>74
Python Desktop ServerがZope Baseとかないわ(www

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

77:nobodyさん
08/08/26 21:12:09 .net
Pythonが自分の意志を持って書いたんだったらいいんじゃね。

78:nobodyさん
08/08/26 21:21:42 .net
まだやってんのかww

79:nobodyさん
08/08/27 19:53:32 .net
pythonのCGIなんて使う人いないんです

80:nobodyさん
08/08/28 00:11:38 .net
粘着してる暇があったらpygameの翻訳しろよ>中学生

81:nobodyさん
08/09/11 03:03:43 PPyFAFla.net
根性曲がりきった大人が多すぎwwWWwwww

82:nobodyさん
08/09/11 08:43:02 .net
他人のこと考える暇があったらpygameの翻訳しろよ>引きこもり

83:nobodyさん
08/09/11 23:02:54 .net
pygame のドキュメントが読めないの?

84:nobodyさん
08/09/13 01:15:13 .net
pygame関係ないじゃん

85:nobodyさん
08/09/13 13:10:09 .net
パイつながりだろ!

86:nobodyさん
08/09/14 09:11:46 .net
そんなこと言ったら、pychinko まで python と
関係あることになるぞ

87:nobodyさん
08/09/15 03:01:54 .net
pythonでcgiやるときに、CSSでデザインするのはどうやってやるの?


88:nobodyさん
08/09/15 04:28:01 .net
ちがうよぜんぜんちがうよ

89:nobodyさん
08/09/15 13:49:02 .net
>>87
釣りか?
HTMLに埋め込むか、
ファイルにCSSを書いて @import か linkタグで読み込ませる

90:nobodyさん
08/09/15 14:23:02 .net
<link rel="stylesheet" href="file.css">

91:nobodyさん
08/09/23 20:07:32 .net
>>89,90

ありがとう!、そうやればいいのか。


92:nobodyさん
08/11/11 01:09:48 .net
GoogleはpythonでCGI?
今日からperlやめてpythonにしよ。

93:nobodyさん
08/11/11 01:38:42 .net
Googleが通常使う言語のひとつにしてるだけだがな・・・

94: 
08/11/27 12:54:04 .net
Pythonで配列を代入するにはどうすればいいですか?
例えばPHPで

$A = array(
"{$ONE['test']}",
"{$TWO['test']}",
"{$THREE['test']}"
);

こういうのをPython式に置き換えると?

95:nobodyさん
08/11/27 14:35:47 .net
>>94
配列とはちょっと違うが辞書とリストならこんな感じ?

ONE = { 'test':'hoge' }
TWO = { 'test':'sage' }
THREE = { 'test':'age' }
A = [ONE['test'],TWO['test'],THREE['test']]

96:nobodyさん
08/11/27 16:27:04 .net
A = {
'ONE':'test',
'TWO':'test',
'THREE':'test'
}

97:94
08/11/27 17:15:30 .net
出来ました!
ありがとうございました

98: 
08/12/05 02:25:27 .net
連想配列と辞書とリストの違いが解りません。
どういうこと?

99:nobodyさん
08/12/06 12:58:50 .net
変数が定義されているか判定したいんですが
PHPでいうissetみたいなものはありますか?

100:nobodyさん
08/12/06 15:52:12 .net
ありません。
NameErrorやAttributeErrorを捕まえてください。

101: 
08/12/07 12:29:28 .net
具体的にどうやればいいんでしょうか?

102:nobodyさん
08/12/07 15:09:25 .net
try:
  a
except NameError:
  print "aなし"
else:
  print "aあり"

変数があるかないか調べなきゃいけないようなコードを書くほうが間違ってると思うけどな。

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

104:nobodyさん
08/12/07 17:09:45 xeKPVS3i.net
>>> try:
... a
File "<stdin>", line 2
a
^
IndentationError: expected an indented block

except打つまえにこんなの出る

105:nobodyさん
08/12/07 17:20:23 .net
>>104
URLリンク(flickr.com)

インデントが必要だと書いてあるだろう

106:nobodyさん
08/12/07 17:27:04 xeKPVS3i.net
>>105
ありがとうございます。できました

>>> a='test'
>>> try:
... a
... except NameError:
... print "a none"
... else:
... print "a is set"
...
'test'
a is set
>>>

...このピリオド3つが最初のインデントだと思い込んでました

107:nobodyさん
08/12/08 19:17:36 .net
【サンタクロース、トナカイの酒気帯び運用。有罪判決に、マジ逆切れ&大暴れw(動画有り)】(ZDNet)
URLリンク(builder.japan.zdnet.com)
URLリンク(builder.japan.zdnet.com)
URLリンク(builder.japan.zdnet.com)


108:nobodyさん
08/12/09 04:27:12 .net
locals()
という関数を呼ぶと自分で定義した変数とか関数とかの一覧(+α)が
返ってくるので、それを使うという方法もある。

>>> a=1
>>> 'a' in locals()
True

109:nobodyさん
08/12/09 17:42:11 .net
web.pyのスレはありますか?

110:nobodyさん
08/12/09 21:35:42 .net
ありますん

111:nobodyさん
08/12/10 03:03:33 .net
どっちだよ

112:nobodyさん
08/12/10 14:27:05 .net
web2py
スレリンク(php板)

113:nobodyさん
08/12/11 05:02:18 .net
web.pyじゃないです><

114:nobodyさん
08/12/13 00:35:39 .net
PHP捨ててPythonに乗り換えようとしたけど、
日本語訳マニュアルに誤変換が多すぎてバカっぽいからやめるわ

115:nobodyさん
08/12/13 00:50:53 .net
PHP使ってる人はPythonやっても幸せになれなさそうだよね・・・
PHPとともに生きるが幸せ

116:nobodyさん
08/12/13 04:04:47 h3kmjY+F.net
ふむ。
一つの言語だけに絞るのもいいかも知れんね。
趣味ならば。

117:nobodyさん
08/12/15 06:54:35 sacUpYif.net
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:nobodyさん
08/12/15 13:23:12 .net
req.headers['content_type'] = 'text/html'

119:nobodyさん
08/12/31 00:18:58 FXljk5zO.net
python 2.5 の cgi プログラムが動作しません。どのような原因が考えられますでしょうか。

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

120:nobodyさん
08/12/31 00:24:43 .net
shebang

121:nobodyさん
08/12/31 00:30:58 .net
Pythonへのパスが間違ってるんじゃねえの?

122:nobodyさん
08/12/31 06:43:36 .net
apacheのログみろ

123:nobodyさん
08/12/31 13:59:27 .net
>パーミッションは755
これだろ


124:119
08/12/31 16:40:57 FXljk5zO.net
>>121 Python へのパス
同じ場所に別のcgiプログラムを置いたところ、パス指定が同じで正常に動作しますので、それはないと思われます。

>>120 >>122 shebang / apache
当方詳しくないものでわかりません、調べてみましたが使い方とかが…

正常に動くプログラムを部分的に改変することにより再現しようとしたら、文字コードを UTF-8 に (同時に、パスの次の行に
# -*- coding: utf-8 -*-
と) したらエラーが発生することがわかりました。

125:fushianasan
08/12/31 17:06:27 .net
しね

126:nobodyさん
08/12/31 18:04:34 kx00N+c5.net
>>124
UnicodeEncode(Decode)Error
とか出てない?

127:119
08/12/31 18:26:15 FXljk5zO.net
>>126
ローカル実行時は出ていません。
サーバ実行時はこんだけです:
500 Error - Internal Server Error
CGIもしくはSSIが正しく動作していません。


128:nobodyさん
08/12/31 18:45:54 .net
>・ cgitb を試みたが、使えていない

import cgitb; cgitb.enable()
これでもだめ(500 Error - Internal Server Error がでる)って言う意味か?


129:nobodyさん
08/12/31 18:47:20 .net
>同じ場所に別のcgiプログラムを置いたところ、パス指定が同じで正常に動作しますので、それはないと思われます。

動くものと動かないもののソース晒せ


130:nobodyさん
08/12/31 19:59:42 kx00N+c5.net
解決しました
ありがとうございました

131:119
08/12/31 20:38:51 FXljk5zO.net
>>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("URLリンク(www.google.co.jp)")
data = open(filename, "w")
data.write(target.read())
data.close()
print target.read()

動かないもの: エンコーディングはUTF-8
コードはパスの次の行に
# -*- coding: utf-8 -*-
を追加しただけ

132:nobodyさん
08/12/31 22:14:06 .net
target.read()
二回実行して問題ないんかな

133:119
08/12/31 22:29:30 FXljk5zO.net
>>132
UTF-8 でないものは2回実行しても動きます。
UTF-8 のものは1回でも動きません。

どうやら来年に持ち越しのようですね…。

134:nobodyさん
08/12/31 23:03:42 .net
池■田大■作の本名はソン・テチャク。小泉純一郎、小沢一朗は朝鮮人。
911では小型の水爆が使用されている。
URLリンク(ri)<)■ako■don/kok_web■site/ir■iguc■hi.htm
与党も野党もメディアも全部朝鮮人だった。
URLリンク(jb)<)

135:nobodyさん
08/12/31 23:22:47 .net
>>131
つまりファイルは出来てないんだね

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

137:nobodyさん
08/12/31 23:46:18 .net
よいお年を

138:nobodyさん
08/12/31 23:47:39 .net
python初心者がはまる典型的なパターンじゃないかな


139:nobodyさん
08/12/31 23:50:25 .net
>>136
「ファイルは出来てない」はプログラムが完成していないという意味じゃなくて

<ここまでに死んでるのか
data = open(filename, "w")
data.write(target.read())
data.close()
<この辺で死んでるのか
print target.read()
を知りたかった訳なんだけど
どう?

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

141: 【大吉】
09/01/01 00:09:53 .net
あけおめ

142:nobodyさん
09/01/01 00:11:44 .net
pythonってBOMに対応してなかったっけ?

143:nobodyさん
09/01/01 00:12:38 .net
>UTF-8 には入れるべきでない余分なヘッダ (?) 3バイトがファイル先頭に

BOMのことか
それを「UTF-8 には入れるべきでない」っつーのは言いがかりだな
まあそれが原因で shebang が利かなくなってたのは確かだが
Windows メモ帳 を悪の元凶と言うのは素人


144: 【だん吉】
09/01/01 00:23:45 fHn+ttSa.net
>>142
python自体はBOM付いてても受け付けるけど
shellが解釈する時点でだめでしょ

145:nobodyさん
09/01/01 00:27:57 .net
悪の元凶: Windows メモ帳
に同意

146:nobodyさん
09/01/01 00:39:00 .net
△悪の元凶: Windows メモ帳
○悪の元凶: Windows メモ帳を使用

147: 【大凶】
09/01/01 17:22:06 .net
あけおめ!

148:nobodyさん
09/01/01 19:22:20 .net
大凶ワロタw

149:nobodyさん
09/01/02 18:12:01 .net
>>144
shebangを解釈するのはカーネルだけどね

150:nobodyさん
09/02/13 18:10:26 .net
Python CGI に <input type="submit"> および <input type="reset"> を書いたとします
それぞれをクリックしたら何が起こるんでしょうか?

151:nobodyさん
09/02/13 19:57:40 .net
>>150
submit…一緒に出力されているhtmlでsubmitの親ノードになってるformのactionに対して送信する
reset…一緒に出力されているhtmlでresetの親ノードになっているform内のinput/select/textarea等がクリアされる

PythonのCGIって言っても単にブラウザに向かってHTML(たまにCSVとかXMLとかバイナリとか違うものも吐くけど)
を吐き出してるだけなんで、普通のHTMLと同じ挙動をするだけだよ。

152:150
09/02/13 20:37:43 .net
あーごめんなさい、書き方が悪かったみたいですね
その「送信された側」などの関係がわからないのです。

153:nobodyさん
09/02/13 20:43:19 .net
>>152
ブラウザの実相にもよるけど、大抵のメジャーブラウザはresetはサーバーとの通信を
行わずローカルだけでやるはずなので、送信元になるのが何であっても(静的HTMLでも、
PythonのCGIが吐き出したHTMLでも、PHPやPerlCGIが吐き出したのでも)同じ動きです。

formからの送信を受け取る側がPythonのCGIなら、↓参照
URLリンク(www.python.jp)

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

155:nobodyさん
09/02/13 23:19:15 .net
>>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:150
09/02/13 23:39:29 .net
まったくないですね… なるほど Python に限った話じゃないからリファレンス見てもほとんど書いてなかったのか

上のコードの場合、FieldStorage() は python.cgi の中でするんでしょうか。これで合ってれば、ほぼ理解できました。

157:nobodyさん
09/02/13 23:42:06 .net
>>156
cgi.FieldStorage()は通信を受け取った側(>155のHTMLをそのまま使うとすると、おっしゃる通りpython.cgiの中で)
することになります。

↓に少しサンプルがあるので見てみてください。
URLリンク(www.python.jp)

158:150
09/02/14 00:26:36 .net
なるほど、よくわかりました。ありがとうございます!
サンプルの方は既に見てましたよ〜。

159:nobodyさん
09/02/14 09:03:11 .net
URLリンク(www.amazon.co.jp)

入門書嫁。

160:150
09/02/14 16:20:41 .net
問題がHTMLフォームの挙動を十分に理解していないことにあるとわかったので
URLリンク(www.kanzaki.com) htminfo32.html htminfo33.html を読んですっきりしました。


161:nobodyさん
09/02/15 14:00:15 .net
こういう人は、皮肉でもなんでもなくPerlCGIから入った方がいいような気がする。
WEBアプリ、特にCGIの入門者が躓きやすいところの情報は、未だにPerl CGIの頃の情報が一番豊富だろ。

んで、悪い癖がつく前にPythonなりRubyなりに移行すれば(またはしなくても)いいんじゃないかと。

162:nobodyさん
09/02/15 22:49:01 .net
ほぼ同意だけどPHPのほうが良いと思う。
WEBに特化してるだけあってそのあたりのことも
マニュアルで解説されてる。

ただし、Perl以上にPHPのほうが癖が強かったりする。

163:nobodyさん
09/02/18 19:38:12 q8sXwxpK.net
cgiの仕様は糞
checkboxの受け取り方とかタヒネとか思う

164:nobodyさん
09/02/19 19:04:35 .net
タヒネってなんですか?

165:nobodyさん
09/02/19 22:50:20 .net
人生そのものだよ

166:nobodyさん
09/04/26 16:13:15 +askKVed.net
質問です。
PythonをWebアプリからはじめて
ゆくゆくはGUIもやってみたいなと思ってる初心者ですが
オススメの書籍は>>159の他にありますか?
Webアプリのセキュリティあたりにも触れているととても幸せです。

現在チュートリアル見てちまちまと勉強中です。
ソースコードがシンプルで好きになれそう…

167:nobodyさん
09/04/26 16:14:58 .net
pythonをwebで使うならDjangoのようなフレームワーク使うのが良いと思うね

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

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

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

171:nobodyさん
09/05/05 22:09:13 .net
WSGIの質問はここでいいですか?

172:nobodyさん
09/05/07 09:59:48 .net
どうぞ

173:nobodyさん
09/06/10 09:52:49 .net
質問です!
最近、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:nobodyさん
09/06/10 22:27:31 .net
どうやらインタープリターの呼び分けが
ハードコーディングされてるっぽいから
単にPythonに対応してないんでしょ。

ApacheやIISの方が、導入敷居が高くても
結局は情報がたくさんそろっててはまりづらいと思うよ。

175:nobodyさん
09/06/11 21:30:24 .net
#!c:\\python\\python.exe
とかって書けば動いたぞ

176:nobodyさん
09/06/12 03:16:41 .net
何時の時代の話だ?ってレベル

177:nobodyさん
09/06/12 10:26:51 .net
それコピペ

178:nobodyさん
09/06/12 15:47:46 .net
winで鯖立てるレベル

179:nobodyさん
09/06/22 21:45:25 .net
意外と便利だよ。Excelファイルごにょごにょとか

180:nobodyさん
09/06/28 01:29:28 .net
#!/usr/bin/python

181:nobodyさん
09/07/03 06:25:05 .net

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



182:nobodyさん
09/07/29 23:21:51 .net
とりあえず保守

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


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

185:nobodyさん
09/08/11 21:51:30 .net
etreeでがんばるしかないね

186:nobodyさん
09/08/15 04:13:53 LWrcnMLs.net
.

187:nobodyさん
09/08/20 22:09:34 .net
「Python 3.1.1」リリース
スレリンク(pcnews板)

188:nobodyさん
09/10/03 23:03:34 9tHx6UBF.net
PythonってLL言語の中では最速って本当ですか?
サーバサイドで使う場合でもPHPよりも優れたパフォーマンスを出せるかどうか心配です。

189:nobodyさん
09/10/03 23:32:03 .net
wsgi

190:nobodyさん
09/10/08 06:16:22 .net
>>188
Pythonは重いyo
さようなら

191:nobodyさん
09/10/09 22:11:15 .net
mod_pythonは?

192:nobodyさん
09/10/10 14:11:35 .net
ぷゅあCGIじゃない

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

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

195:nobodyさん
09/10/17 04:57:06 .net
Python(>=2.5)+SQLite3爆速

196:nobodyさん
09/10/17 07:39:06 .net
URLリンク(newworld.ddo.jp)
日本語が下手過ぎて読み難いけど速度改善の参考にはなる

197:nobodyさん
09/10/17 16:20:53 .net
下手な翻訳よりもこっち読め
URLリンク(wiki.python.org)

198:nobodyさん
09/12/04 02:12:35 .net
mod_pythonの仕様はないよなぁ
作り直したりしないのかな

199:nobodyさん
09/12/04 03:31:26 .net
python web framework って流行ってないの。
やるなら実質 gae 一択?
pylons しこしこいじってるんだけど、寂しいよ。

200:nobodyさん
09/12/04 11:45:04 .net
自分の場合
django
あるいは
wsgi で自作 Framework

201:nobodyさん
09/12/04 11:52:20 .net
gaeは糞w

202:nobodyさん
09/12/04 12:06:56 .net
django一択になってしまったなぁ。
最初はpylonsやtgにも期待してたんだけど。

203:nobodyさん
09/12/04 14:48:24 .net
web.pyでいいよもう

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

205:nobodyさん
09/12/11 15:26:40 .net
CherryPyでいい気がしてきた。

206:sage
09/12/14 17:21:38 DjxYEeHj.net
werkzeugの話題がまったくでないなー

207:nobodyさん
09/12/15 01:02:33 .net
>>206
なんて読むの?

208:nobodyさん
09/12/15 07:34:14 .net
ヴェルクゾイク

209:nobodyさん
09/12/15 07:38:21 .net
URLリンク(d.hatena.ne.jp)
ヴェルクツォイグ?

210:nobodyさん
09/12/15 13:14:21 .net
アルツハイマー

211:nobodyさん
10/03/12 22:20:20 ervBW8Jl.net
pythonでformの値を受け取る処理ってどんなの?

phpだと
<?php
$name = $_GET['name'];
echo $name;
?>
こんな感じだけど。

212:nobodyさん
10/03/13 04:58:15 .net
def post(self, name):
return ([name])

213:nobodyさん
10/03/13 10:35:27 .net
>>211
cgi関数で拾ってくれる。

214:nobodyさん
10/03/13 20:02:06 .net
そうなのか。知らなかった。


215:nobodyさん
10/03/14 10:39:03 .net
>>212
なにこれ?

216:nobodyさん
10/03/14 13:28:13 .net
wsgi

217:nobodyさん
10/03/14 13:39:51 .net
>>216
なんか勘違いしてる

218:nobodyさん
10/03/14 13:53:36 .net
えっ?

219:nobodyさん
10/03/14 18:03:26 .net
えっ?

220:nobodyさん
10/03/14 22:46:37 .net
えっ?


221:nobodyさん
10/03/14 22:50:22 .net
URLリンク(www.python.org)
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:nobodyさん
10/03/14 22:53:06 .net
えっ?


223:nobodyさん
10/03/14 23:17:42 .net
def post(self, name):
return ([name])

第二引数に渡されるのはstart_responseです。

224:nobodyさん
10/03/14 23:37:30 .net
えっ?


225:nobodyさん
10/03/15 01:06:07 .net
お互い噛み合ってないのがそんなに楽しいの。

226:nobodyさん
10/03/15 01:13:17 .net
えっ?


227:nobodyさん
10/03/15 01:21:29 .net
なにそれこわい

228:nobodyさん
10/03/15 01:37:57 .net
えっ?


229:nobodyさん
10/03/15 18:45:47 .net
( ^ω^)えっえっ

230:nobodyさん
10/03/16 02:37:45 .net
( ^ω^)おっおっ

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

232:nobodyさん
10/03/17 07:19:18 .net
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:nobodyさん
10/03/17 14:55:48 .net
>>211

import cgi;

f = cgi.FieldStorage()
value = f.getvalue('name','')
print value

234:nobodyさん
10/03/17 22:35:43 .net
>>232
ありがとうございます

235:nobodyさん
10/03/21 22:16:25 .net
初めてのPython読んでるけど、これ凄いじゃん。
流行ってないのが信じられないくらい。海外では流行ってるのかな?>PythonCGI

236:nobodyさん
10/03/22 03:50:53 .net
海外ではCGIが廃れてるよ

237:nobodyさん
10/03/22 07:00:39 .net
つかWSGIの話題ってここでおk???

238:nobodyさん
10/03/22 07:11:47 .net
おk

239:nobodyさん
10/03/22 16:50:00 .net
廃れてんのかよ、そりゃ残念だ

240:nobodyさん
10/03/22 22:39:31 .net
誤解ではないかと。
狭義の意味でのCGIは廃れていいと思う。重いから。
FastCGIで自由にプロセスをまわしたい。

241:nobodyさん
10/03/22 23:16:58 .net
廃れてるつぅかPHPが圧倒的に盛んなだけ。
海外でも無料のレン鯖はCGIでPHP使うなら有償ってのが普通


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

ありがとうございました。

243:nobodyさん
10/03/23 01:48:12 .net
俺が知ってるとこだと@pagesがPython使える
国内の無料鯖
今の募集状況知らんけどphpも使えるし垢取れたらとっとけば?

244:nobodyさん
10/03/23 05:21:48 .net
xrea

245:nobodyさん
10/03/23 07:42:38 .net
あれ?xreaも使えるんか
んじゃそっちの方がいいか


246:nobodyさん
10/03/23 08:24:10 .net
Pythonが使えるサーバ一覧
URLリンク(python.rdy.jp)


247:nobodyさん
10/03/23 08:54:52 .net
Pythonのお勉強

でもPerlのwiki(笑)

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

249:nobodyさん
10/03/23 17:14:35 .net
Python 2.6.5/3.1.2リリース
URLリンク(sourceforge.jp)

250:nobodyさん
10/03/23 17:53:38 .net
wsgiがあればpythonのフレームワークなんていらないのだろうか

251:nobodyさん
10/03/24 03:24:36 .net
うん

252:nobodyさん
10/03/24 08:54:15 .net
RoR に感化されたので PoR 作ってみた
wsgi 使って案外あっさり作れた

253:nobodyさん
10/04/07 09:10:55 .net
(´・ω・`)


254:nobodyさん
10/04/25 01:18:15 .net
wsgiでphpで書いてあるソフトのアドオンつくれないのかな
をwordpressとか

255:nobodyさん
10/04/25 03:08:50 .net
(´・ω・`)

256:nobodyさん
10/05/02 18:55:34 U6XonqdJ.net
(´・ω・`)

257:nobodyさん
10/05/02 19:19:49 .net
(`・ω・´) age

258:nobodyさん
10/05/03 15:27:24 nSJx/Nkb.net
(´・ω・`) nullpo


259:nobodyさん
10/05/15 19:59:59 .net


260:nobodyさん
10/06/09 17:17:32 .net
web.pyは素晴らしいなー

261:nobodyさん
10/07/02 20:54:17 .net

URLリンク(werkzeug.pocoo.org)

262:nobodyさん
10/07/06 21:06:35 vP77FDaw.net
age

263:nobodyさん
10/10/30 04:24:33 .net
pythonでcgi書いてる奴少ないんだな
hello worldから先に進まん俺はどこへ行けば……。

264:nobodyさん
10/10/30 05:34:46 .net
djangoスレへどうぞ

265:nobodyさん
10/10/30 11:20:17 .net
墓場に行けということですね

266:nobodyさん
10/10/30 14:13:39 .net
いいえ墓場ではなくて温泉です

267:nobodyさん
10/10/30 15:45:35 .net
アッー!

268:nobodyさん
10/10/30 19:40:12 .net
名前だけみてcherrypyを選んだ

269:nobodyさん
10/11/01 16:41:55 .net
>>263
書いているよ

人に教えられるほどではないけど

270:nobodyさん
10/11/12 18:04:49 S/psY6Sg.net
    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!

271:nobodyさん
11/01/16 16:41:31 Vmy6wBJQ.net
PythonでのCGIの勉強をしようと思っております。

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

272:nobodyさん
11/01/16 19:44:22 .net
tempita

import cgi


273:nobodyさん
11/01/16 23:12:48 .net
これも便利
import cgitb

274:nobodyさん
11/01/17 03:58:37 .net
import cgitb; cgitb.enable

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

276:nobodyさん
11/01/18 15:27:18 .net
cgiとcheetahの日本語リファレンスってないの?
検索しても、比較サイトくらいしか出てこないんだが

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

278:nobodyさん
11/02/06 13:03:22 .net
Perlとかの掲示板を移植する作業をしてみてはどうだろうか。

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


280:nobodyさん
11/02/07 00:03:41 .net
wsgi

281:nobodyさん
11/02/12 02:13:53 .net
形から入ろうとして結局何もしないの典型的なパターン

282:nobodyさん
11/02/12 12:37:42 .net
こう寒いと温泉に入りたくなる

283:nobodyさん
11/02/12 14:45:55 .net
参考になるレベルじゃないけど、簡単なお題を決めて
試行錯誤すると気楽だし使い回しできるかもね

入力必須チェックとかメールアドレスチェックとか

284:nobodyさん
11/02/12 18:25:33 .net
自分でテンプレート作るのはなかなか楽しい

285:nobodyさん
11/02/13 03:45:30 .net
>>284
Jinja2かMakoでいいじゃん。

286:nobodyさん
11/02/21 21:29:34.09 .net
Tornado1.2リリース
URLリンク(groups.google.com)

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

288:nobodyさん
11/02/26 03:49:05.61 .net
漏れはいらんけど

ほれ
URLリンク(coreblog.org)
URLリンク(coreblog.org)


289:nobodyさん
11/02/26 10:53:51.77 .net
>>288
おー駄目元で聞いてみたんだけどどうもありがとう!
ソース写経するの間違えたりして大変なんだよね

290:nobodyさん
11/02/26 10:58:01.74 .net
馬鹿には無理

291:nobodyさん
11/02/26 21:20:05.07 OABn/feM.net
しっかしpythonスレはことごとく廃れるな
なぜだ

292:nobodyさん
11/02/28 11:46:15.23 .net
答えは簡単、Pythonに需要がない

293:nobodyさん
11/02/28 13:13:09.33 .net
個人的には重宝してるけど、書き込む話題とか持ってないからなあ

294:nobodyさん
11/03/01 18:12:41.28 0g7hFjNK.net
linuxでは必須になりつつあるだろ

295:nobodyさん
11/03/01 19:16:57.78 .net
なんでも入ってるごった煮
それがLinuxだからな

296:nobodyさん
11/03/02 11:31:01.30 .net
>>294
Linux Standard Base 3.2(LSB3.2)にPythonが入ったからね

297:nobodyさん
11/03/02 22:30:38.92 .net
今でも鯖管理関係もperl出来ないとつらいかな?
Pythonだけで戦えないもんかな〜

298:nobodyさん
11/03/02 23:31:08.39 RV5SmflQ.net
遅かれ早かれ置き換わるだろうけどな

299:nobodyさん
11/03/03 07:04:31.65 .net
GentooではPython必須

300:nobodyさん
11/03/05 05:39:55.11 .net
>>297
うちは perl 駆除続けてる
ほとんど完了しつつある

301:nobodyさん
11/03/05 07:32:34.01 .net
>>297
perlを使わない事は出来るけどperlを削除することは出来ない

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

303:nobodyさん
11/03/30 12:54:25.51 .net
CentOSでもPython抜くとカーネル死ぬんだってなw

304:nobodyさん
11/03/30 21:16:02.89 .net
なんじゃそりゃ

305:nobodyさん
11/03/30 21:58:48.93 .net
URLリンク(d.hatena.ne.jp)
これだな


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1143日前に更新/63 KB
担当:undef