トップページ⇒php
359コメント75KB

Python CGI

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/11/14(火) 23:09:04ID:KpRkBouP
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
0032nobodyさん2007/12/06(木) 02:06:23ID:???
age
0033nobodyさん2007/12/06(木) 17:27:02ID:4cNz8/z3
PythonでPerlで言う%ENVってどう取得するの?
0034nobodyさん2007/12/06(木) 19:32:57ID:???
import os
os.environ
0035nobodyさん2007/12/06(木) 20:06:48ID:???
>>34
超ありがとう
0036nobodyさん2008/01/07(月) 23:59:40ID:???
a
0037nobodyさん2008/01/08(火) 17:07:19ID:???
b
0038nobodyさん2008/01/09(水) 12:10:27ID:???
bcpl
0039nobodyさん2008/01/17(木) 14:40:53ID:???
pythonでContent-type: application/octet-stream
と指定したいんだけど、どうすればいいの
0040nobodyさん2008/01/17(木) 18:11:42ID:???
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
0041nobodyさん2008/01/17(木) 19:48:54ID:???
できないんですね。諦めました
0042nobodyさん2008/01/25(金) 06:20:43ID:???
>>39
CGIならそのまま
print "COntent-Type: application/octeat-stream"
print ""
でいいんじゃないの?
0043nobodyさん2008/02/07(木) 17:51:11ID:???
>>24
昔、

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

とやると、g には情報が入ってないということに気づいてなくて、
ハマった思い出がある・・・、それかも?
0044nobodyさん2008/04/06(日) 11:03:18ID:+rP1g4GY
age
0045nobodyさん2008/04/06(日) 17:07:41ID:???
>>43
それ、今でも時々はまるわw
0046nobodyさん2008/04/07(月) 22:39:30ID:1NhJidwR
無料で、Python が使えるレンサバ
  - http://land.to/
  - http://www.xrea.com/

有料だけど、Python が使えるレンサバ
  - http://www.sakura.ne.jp/
  - ・・・
0047nobodyさん2008/04/07(月) 22:41:38ID:???
有料はほかにもいろいろあると思うけど、
無料は上2つしか見たこと無い、・・・
0048nobodyさん2008/04/08(火) 03:16:35ID:???
好きなの選べや
http://www.google.com/search?hl=en&q=free+hosting+python&btnG=Google+Search
0049nobodyさん2008/04/08(火) 09:24:03ID:???
> 好きなの選べや
換言すれば国内だと上記二つということか
0050nobodyさん2008/07/01(火) 00:32:30ID:???
@pages
0051nobodyさん2008/07/30(水) 20:53:03ID:???
現在だと実質ひとつか・・・
0052nobodyさん2008/08/05(火) 22:08:19ID:vYQ6tZSI
なんかPythonでつくられたcgiってあんまり見ないね
海外だと多いの?
0053nobodyさん2008/08/05(火) 22:35:19ID:???
http://adwords.google.com/support/bin/answer.py?hl=jp&answer=44500
0054nobodyさん2008/08/08(金) 01:59:26ID:eg0CeB+P
Pythonで作られたブログってない?
0055nobodyさん2008/08/08(金) 11:00:10ID:???
weblog written by python
これがどれだけ意味不明なフレーズであるか、書く前に気づかないものだろうか
0056nobodyさん2008/08/08(金) 11:14:15ID:???
>>55
これが噂の中二病か
0057nobodyさん2008/08/08(金) 11:14:55ID:???
>>55
Weblog written "IN" Pythonな。
中学生は勉強しろよ。
0058nobodyさん2008/08/08(金) 16:08:02ID:???
Portable PythonにTurboGearsぶちこんだ人って、2chになら1人くらい居ますよね
0059nobodyさん2008/08/08(金) 21:58:38ID:???
>>57
それもちげぇよw
0060nobodyさん2008/08/08(金) 22:51:23ID:???
>59
勉強しろよ厨房
0061nobodyさん2008/08/09(土) 02:05:18ID:???
>>57であってるとおもうけど、なにが違うの? >>59
0062nobodyさん2008/08/09(土) 10:18:50ID:???
59=55の存在が一番違う
0063nobodyさん2008/08/09(土) 11:53:19ID:???
普通、powered byを使うように思うが。
文章すらPythonで書かれていればどうか知らんが。
0064nobodyさん2008/08/09(土) 11:56:27ID:???
少し語弊があるか。
Pythonで書かれたブログシステムはwrittenでいいが、
それを利用したWeblogはpowered。
0065nobodyさん2008/08/09(土) 12:41:27ID:???
written "by"の話をしてるんでしょうに
0066nobodyさん2008/08/09(土) 12:59:56ID:???
いずれにしても59=55はいらない子。
0067nobodyさん2008/08/09(土) 13:28:59ID:???
それよりcgiの話しようぜ!
0068nobodyさん2008/08/09(土) 13:39:04ID:???
written by Guidoとはいうけど、written by Pythonとは言わないだろ。
勉強しろよ>中学生
0069nobodyさん2008/08/09(土) 14:49:53ID:???
なんで勝手に55=59にされてんのか意味不明だが、
>>57は明らかにアホ。
外人に聞いてみろよ。ブログの内容pythonで書いてるのと勘違いされるぞ
0070nobodyさん2008/08/09(土) 17:04:59ID:???
まだ悔し紛れに粘着してるのか
もういいだろ

written in Pythonでブログの内容をPythonで
書いてると勘違いするような基地外はいないよ
お前くらいしか
0071nobodyさん2008/08/09(土) 17:13:00ID:???
なんでつまらない話題で盛り上がってるの?バカなの?
0072nobodyさん2008/08/11(月) 05:22:01ID:???
だよな。
written for Pythonで終わりの話だろ。
0073nobodyさん2008/08/11(月) 09:02:47ID:???
>>69
>外人に聞いてみろよ。
知り合いのロシア人に聞いてみたけど「わかんね」って言ってた(www>
0074nobodyさん2008/08/12(火) 22:31:30ID:hynniAyL
54>>
http://wiki.python.org/moin/PythonBlogSoftware
ここから探してみて。
0075nobodyさん2008/08/12(火) 23:37:44ID:???
>>74
Python Desktop ServerがZope Baseとかないわ(www
0076nobodyさん2008/08/26(火) 20:27:56ID:???
written by pythonでも通じると思うよ。
「パイソンさんによって書かれています」みたいな感じでしょ?
0077nobodyさん2008/08/26(火) 21:12:09ID:???
Pythonが自分の意志を持って書いたんだったらいいんじゃね。
0078nobodyさん2008/08/26(火) 21:21:42ID:???
まだやってんのかww
0079nobodyさん2008/08/27(水) 19:53:32ID:???
pythonのCGIなんて使う人いないんです
0080nobodyさん2008/08/28(木) 00:11:38ID:???
粘着してる暇があったらpygameの翻訳しろよ>中学生
0081nobodyさん2008/09/11(木) 03:03:43ID:PPyFAFla
根性曲がりきった大人が多すぎwwWWwwww
0082nobodyさん2008/09/11(木) 08:43:02ID:???
他人のこと考える暇があったらpygameの翻訳しろよ>引きこもり
0083nobodyさん2008/09/11(木) 23:02:54ID:???
pygame のドキュメントが読めないの?
0084nobodyさん2008/09/13(土) 01:15:13ID:???
pygame関係ないじゃん
0085nobodyさん2008/09/13(土) 13:10:09ID:???
パイつながりだろ!
0086nobodyさん2008/09/14(日) 09:11:46ID:???
そんなこと言ったら、pychinko まで python と
関係あることになるぞ
0087nobodyさん2008/09/15(月) 03:01:54ID:???
pythonでcgiやるときに、CSSでデザインするのはどうやってやるの?
0088nobodyさん2008/09/15(月) 04:28:01ID:???
ちがうよぜんぜんちがうよ
0089nobodyさん2008/09/15(月) 13:49:02ID:???
>>87
釣りか?
HTMLに埋め込むか、
ファイルにCSSを書いて @import か linkタグで読み込ませる
0090nobodyさん2008/09/15(月) 14:23:02ID:???
<link rel="stylesheet" href="file.css">
0091nobodyさん2008/09/23(火) 20:07:32ID:???
>>89,90

ありがとう!、そうやればいいのか。
0092nobodyさん2008/11/11(火) 01:09:48ID:???
GoogleはpythonでCGI?
今日からperlやめてpythonにしよ。
0093nobodyさん2008/11/11(火) 01:38:42ID:???
Googleが通常使う言語のひとつにしてるだけだがな・・・
0094 2008/11/27(木) 12:54:04ID:???
Pythonで配列を代入するにはどうすればいいですか?
例えばPHPで

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

こういうのをPython式に置き換えると?
0095nobodyさん2008/11/27(木) 14:35:47ID:???
>>94
配列とはちょっと違うが辞書とリストならこんな感じ?

ONE = { 'test':'hoge' }
TWO = { 'test':'sage' }
THREE = { 'test':'age' }
A = [ONE['test'],TWO['test'],THREE['test']]
0096nobodyさん2008/11/27(木) 16:27:04ID:???
A = {
'ONE':'test',
'TWO':'test',
'THREE':'test'
}
0097942008/11/27(木) 17:15:30ID:???
出来ました!
ありがとうございました
0098 2008/12/05(金) 02:25:27ID:???
連想配列と辞書とリストの違いが解りません。
どういうこと?
0099nobodyさん2008/12/06(土) 12:58:50ID:???
変数が定義されているか判定したいんですが
PHPでいうissetみたいなものはありますか?
0100nobodyさん2008/12/06(土) 15:52:12ID:???
ありません。
NameErrorやAttributeErrorを捕まえてください。
0101 2008/12/07(日) 12:29:28ID:???
具体的にどうやればいいんでしょうか?
0102nobodyさん2008/12/07(日) 15:09:25ID:???
try:
  a
except NameError:
  print "aなし"
else:
  print "aあり"

変数があるかないか調べなきゃいけないようなコードを書くほうが間違ってると思うけどな。
0103 2008/12/07(日) 15:50:16ID:???
>>102
回答ありがとうございます
プログラム(まずはCGI)の勉強のためにPythonを選びました。
何から始めたらいいのか分からなかったので配付されている
PHPのスクリプトをPythonに移植してみようと思い立ちました。
まともに動くようになったら指摘された箇所を見直して見ようと思います。
そこまで理解が深まればの話ですけど。
0104nobodyさん2008/12/07(日) 17:09:45ID:xeKPVS3i
>>> try:
... a
File "<stdin>", line 2
a
^
IndentationError: expected an indented block

except打つまえにこんなの出る
0105nobodyさん2008/12/07(日) 17:20:23ID:???
>>104
http://flickr.com/photos/shinji_i/2282608491/

インデントが必要だと書いてあるだろう
0106nobodyさん2008/12/07(日) 17:27:04ID:xeKPVS3i
>>105
ありがとうございます。できました

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

...このピリオド3つが最初のインデントだと思い込んでました
0107nobodyさん2008/12/08(月) 19:17:36ID:???
【サンタクロース、トナカイの酒気帯び運用。有罪判決に、マジ逆切れ&大暴れ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
0108nobodyさん2008/12/09(火) 04:27:12ID:???
locals()
という関数を呼ぶと自分で定義した変数とか関数とかの一覧(+α)が
返ってくるので、それを使うという方法もある。

>>> a=1
>>> 'a' in locals()
True
0109nobodyさん2008/12/09(火) 17:42:11ID:???
web.pyのスレはありますか?
0110nobodyさん2008/12/09(火) 21:35:42ID:???
ありますん
0111nobodyさん2008/12/10(水) 03:03:33ID:???
どっちだよ
0112nobodyさん2008/12/10(水) 14:27:05ID:???
web2py
http://pc11.2ch.net/test/read.cgi/php/1228881994/
0113nobodyさん2008/12/11(木) 05:02:18ID:???
web.pyじゃないです><
0114nobodyさん2008/12/13(土) 00:35:39ID:???
PHP捨ててPythonに乗り換えようとしたけど、
日本語訳マニュアルに誤変換が多すぎてバカっぽいからやめるわ
0115nobodyさん2008/12/13(土) 00:50:53ID:???
PHP使ってる人はPythonやっても幸せになれなさそうだよね・・・
PHPとともに生きるが幸せ
0116nobodyさん2008/12/13(土) 04:04:47ID:h3kmjY+F
ふむ。
一つの言語だけに絞るのもいいかも知れんね。
趣味ならば。
0117nobodyさん2008/12/15(月) 06:54:35ID:sacUpYif
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の引数のテキストがそのまま表示されてしまう。
0118nobodyさん2008/12/15(月) 13:23:12ID:???
req.headers['content_type'] = 'text/html'
0119nobodyさん2008/12/31(水) 00:18:58ID:FXljk5zO
python 2.5 の cgi プログラムが動作しません。どのような原因が考えられますでしょうか。

自分で確認した事項等は以下の通りです:
・ ローカルでは動作する
・ パーミッションは755になっている
・ アスキーモードで転送している (バイナリモードでも試してみた)
・ 文字コードは UTF-8 で、プログラム内にも # -*- coding: utf-8 -*- としている
・ import したのは cgi, urllib, re, time
・ cgitb を試みたが、使えていない
0120nobodyさん2008/12/31(水) 00:24:43ID:???
shebang
0121nobodyさん2008/12/31(水) 00:30:58ID:???
Pythonへのパスが間違ってるんじゃねえの?
0122nobodyさん2008/12/31(水) 06:43:36ID:???
apacheのログみろ
0123nobodyさん2008/12/31(水) 13:59:27ID:???
>パーミッションは755
これだろ
01241192008/12/31(水) 16:40:57ID:FXljk5zO
>>121 Python へのパス
同じ場所に別のcgiプログラムを置いたところ、パス指定が同じで正常に動作しますので、それはないと思われます。

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

正常に動くプログラムを部分的に改変することにより再現しようとしたら、文字コードを UTF-8 に (同時に、パスの次の行に
# -*- coding: utf-8 -*-
と) したらエラーが発生することがわかりました。
0125fushianasan2008/12/31(水) 17:06:27ID:???
しね
0126nobodyさん2008/12/31(水) 18:04:34ID:kx00N+c5
>>124
UnicodeEncode(Decode)Error
とか出てない?
01271192008/12/31(水) 18:26:15ID:FXljk5zO
>>126
ローカル実行時は出ていません。
サーバ実行時はこんだけです:
500 Error - Internal Server Error
CGIもしくはSSIが正しく動作していません。
0128nobodyさん2008/12/31(水) 18:45:54ID:???
>・ cgitb を試みたが、使えていない

import cgitb; cgitb.enable()
これでもだめ(500 Error - Internal Server Error がでる)って言う意味か?
0129nobodyさん2008/12/31(水) 18:47:20ID:???
>同じ場所に別のcgiプログラムを置いたところ、パス指定が同じで正常に動作しますので、それはないと思われます。

動くものと動かないもののソース晒せ
0130nobodyさん2008/12/31(水) 19:59:42ID:kx00N+c5
解決しました
ありがとうございました
01311192008/12/31(水) 20:38:51ID:FXljk5zO
>>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 -*-
を追加しただけ
0132nobodyさん2008/12/31(水) 22:14:06ID:???
target.read()
二回実行して問題ないんかな
■ このスレッドは過去ログ倉庫に格納されています