1 :
nobodyさん :
2006/11/14(火) 23:09:04 ID:KpRkBouP
mod_pythonを排斥するとはゆるせない!
まぁ、この板ではサーバーサイドは何でもcgiって呼ぶからなぁ
4 :
+++ :2006/11/16(木) 17:28:37 ID:???
ネタがないかな。というか、あまりPython-CGIってやらないかな。
6 :
nobodyさん :2006/11/18(土) 12:45:05 ID:BbR6q3ov
最小文字数 #!/usr/bin/env python print'\n'
print 'Content-type: text/html\n'
8 :
未テスト :2006/11/19(日) 19:08:52 ID:???
カウンター #!/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">
本スレ見てて思ったんだけど、 urllib2とかcookielibのインターフェースって結構使いづらい&分かりづらい ような気が・・・ cookielibとかperlのモジュールを参考にしてますとか堂々と書いてるのも どうかと思う
11 :
nobodyさん :2006/11/29(水) 23:14:00 ID:URfZB542
14 :
nobodyさん :2007/02/26(月) 13:32:06 ID:5UU9u3Sv
ネタ降ってみるか。 CGIでも使えるframeworkってある? DjangoもTurbogearsもCGIでは使い物にならん。
TurboGearsはCGIでの設置方法がよくわからんかったから諦めたけど Djangoは結構普通にCGIで動いたよ。 DB使えないとかは当然ダメだけど。
PythonでつくったCGIをコマンドラインから実行してテストしたいんだけど、 リクエストパラメータの渡し方が分かりません。 echo 'QUERY_STRING: key=value' | python hoge.cgi としてみてもだめでした。いい方法ないですか。
環境変数QUERY_STRINGに値を入れておく。 Windowsなら set QUERY_STRING=key1=value1;key2=value2 python hoge.cgi こんな感じじゃだめかい
>>17 それでうまく行きました。サンクス。
そういやそうだよな。なんで気づかなかったんだろう。
Pythonでcgiモジュール使ってるんだけど、HTTPレスポンスのステータスコードを指定する方法が分からん。 知ってたら教えてちょ。
>>19 print "Satus: 404 Not Found"
or
print "Status: 301 Moved Permanently"
print "Location: /some/where/index.html"
でいけた。cgiモジュールは関係なかったorz。
CGIをPythonで書くとして、テンプレートエンジンはどれがおすすめでしょうか。
Djangoは動くってば
cgi.FieldStorage()を使ってもうまくパラメータを取得できないような気がする mod_python の util.FieldStorage(req) でようやっと取得できた
ああ、そもそもCGIとして呼ばれたものとmod_pythonから呼ばれたものを同類に考えるなって事かな・・・
27 :
nobodyさん :2007/10/31(水) 13:28:00 ID:sGG/8OO0
1 1
W Server 2003 の IIS 7 で python CGI っていう組み合わせは変態ですか?
29 :
nobodyさん :2007/11/12(月) 21:00:18 ID:pM40V8Qq
30 :
nobodyさん :2007/11/21(水) 12:49:36 ID:3n2kypGE
age
33 :
nobodyさん :2007/12/06(木) 17:27:02 ID:4cNz8/z3
PythonでPerlで言う%ENVってどう取得するの?
import os os.environ
a
b
bcpl
pythonでContent-type: application/octet-stream と指定したいんだけど、どうすればいいの
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
できないんですね。諦めました
>>39 CGIならそのまま
print "COntent-Type: application/octeat-stream"
print ""
でいいんじゃないの?
>>24 昔、
f = cgi.FieldStorage()
g = cgi.FieldSrorage()
とやると、g には情報が入ってないということに気づいてなくて、
ハマった思い出がある・・・、それかも?
44 :
nobodyさん :2008/04/06(日) 11:03:18 ID:+rP1g4GY
age
46 :
nobodyさん :2008/04/07(月) 22:39:30 ID:1NhJidwR
有料はほかにもいろいろあると思うけど、 無料は上2つしか見たこと無い、・・・
> 好きなの選べや 換言すれば国内だと上記二つということか
@pages
現在だと実質ひとつか・・・
52 :
nobodyさん :2008/08/05(火) 22:08:19 ID:vYQ6tZSI
なんかPythonでつくられたcgiってあんまり見ないね 海外だと多いの?
54 :
nobodyさん :2008/08/08(金) 01:59:26 ID:eg0CeB+P
Pythonで作られたブログってない?
weblog written by python これがどれだけ意味不明なフレーズであるか、書く前に気づかないものだろうか
>>55 Weblog written "IN" Pythonな。
中学生は勉強しろよ。
Portable PythonにTurboGearsぶちこんだ人って、2chになら1人くらい居ますよね
>59 勉強しろよ厨房
59=55の存在が一番違う
普通、powered byを使うように思うが。 文章すらPythonで書かれていればどうか知らんが。
少し語弊があるか。 Pythonで書かれたブログシステムはwrittenでいいが、 それを利用したWeblogはpowered。
written "by"の話をしてるんでしょうに
いずれにしても59=55はいらない子。
それよりcgiの話しようぜ!
written by Guidoとはいうけど、written by Pythonとは言わないだろ。 勉強しろよ>中学生
なんで勝手に55=59にされてんのか意味不明だが、
>>57 は明らかにアホ。
外人に聞いてみろよ。ブログの内容pythonで書いてるのと勘違いされるぞ
まだ悔し紛れに粘着してるのか もういいだろ written in Pythonでブログの内容をPythonで 書いてると勘違いするような基地外はいないよ お前くらいしか
なんでつまらない話題で盛り上がってるの?バカなの?
だよな。 written for Pythonで終わりの話だろ。
>>69 >外人に聞いてみろよ。
知り合いのロシア人に聞いてみたけど「わかんね」って言ってた(www>
74 :
nobodyさん :2008/08/12(火) 22:31:30 ID:hynniAyL
>>74 Python Desktop ServerがZope Baseとかないわ(www
written by pythonでも通じると思うよ。 「パイソンさんによって書かれています」みたいな感じでしょ?
Pythonが自分の意志を持って書いたんだったらいいんじゃね。
まだやってんのかww
pythonのCGIなんて使う人いないんです
粘着してる暇があったらpygameの翻訳しろよ>中学生
81 :
nobodyさん :2008/09/11(木) 03:03:43 ID:PPyFAFla
根性曲がりきった大人が多すぎwwWWwwww
他人のこと考える暇があったらpygameの翻訳しろよ>引きこもり
pygame のドキュメントが読めないの?
pygame関係ないじゃん
パイつながりだろ!
そんなこと言ったら、pychinko まで python と 関係あることになるぞ
pythonでcgiやるときに、CSSでデザインするのはどうやってやるの?
ちがうよぜんぜんちがうよ
>>87 釣りか?
HTMLに埋め込むか、
ファイルにCSSを書いて @import か linkタグで読み込ませる
<link rel="stylesheet" href="file.css">
>>89 ,90
ありがとう!、そうやればいいのか。
GoogleはpythonでCGI? 今日からperlやめてpythonにしよ。
Googleが通常使う言語のひとつにしてるだけだがな・・・
94 :
:2008/11/27(木) 12:54:04 ID:???
Pythonで配列を代入するにはどうすればいいですか? 例えばPHPで $A = array( "{$ONE['test']}", "{$TWO['test']}", "{$THREE['test']}" ); こういうのをPython式に置き換えると?
>>94 配列とはちょっと違うが辞書とリストならこんな感じ?
ONE = { 'test':'hoge' }
TWO = { 'test':'sage' }
THREE = { 'test':'age' }
A = [ONE['test'],TWO['test'],THREE['test']]
A = { 'ONE':'test', 'TWO':'test', 'THREE':'test' }
97 :
94 :2008/11/27(木) 17:15:30 ID:???
出来ました! ありがとうございました
98 :
:2008/12/05(金) 02:25:27 ID:???
連想配列と辞書とリストの違いが解りません。 どういうこと?
変数が定義されているか判定したいんですが PHPでいうissetみたいなものはありますか?
ありません。 NameErrorやAttributeErrorを捕まえてください。
101 :
:2008/12/07(日) 12:29:28 ID:???
具体的にどうやればいいんでしょうか?
try: a except NameError: print "aなし" else: print "aあり" 変数があるかないか調べなきゃいけないようなコードを書くほうが間違ってると思うけどな。
103 :
:2008/12/07(日) 15:50:16 ID:???
>>102 回答ありがとうございます
プログラム(まずはCGI)の勉強のためにPythonを選びました。
何から始めたらいいのか分からなかったので配付されている
PHPのスクリプトをPythonに移植してみようと思い立ちました。
まともに動くようになったら指摘された箇所を見直して見ようと思います。
そこまで理解が深まればの話ですけど。
104 :
nobodyさん :2008/12/07(日) 17:09:45 ID:xeKPVS3i
>>> try: ... a File "<stdin>", line 2 a ^ IndentationError: expected an indented block except打つまえにこんなの出る
106 :
nobodyさん :2008/12/07(日) 17:27:04 ID:xeKPVS3i
>>105 ありがとうございます。できました
>>> a='test'
>>> try:
... a
... except NameError:
... print "a none"
... else:
... print "a is set"
...
'test'
a is set
>>>
...このピリオド3つが最初のインデントだと思い込んでました
locals() という関数を呼ぶと自分で定義した変数とか関数とかの一覧(+α)が 返ってくるので、それを使うという方法もある。 >>> a=1 >>> 'a' in locals() True
web.pyのスレはありますか?
ありますん
どっちだよ
web.pyじゃないです><
PHP捨ててPythonに乗り換えようとしたけど、 日本語訳マニュアルに誤変換が多すぎてバカっぽいからやめるわ
PHP使ってる人はPythonやっても幸せになれなさそうだよね・・・ PHPとともに生きるが幸せ
116 :
nobodyさん :2008/12/13(土) 04:04:47 ID:h3kmjY+F
ふむ。 一つの言語だけに絞るのもいいかも知れんね。 趣味ならば。
117 :
nobodyさん :2008/12/15(月) 06:54:35 ID: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の引数のテキストがそのまま表示されてしまう。
req.headers['content_type'] = 'text/html'
119 :
nobodyさん :2008/12/31(水) 00:18:58 ID:FXljk5zO
python 2.5 の cgi プログラムが動作しません。どのような原因が考えられますでしょうか。 自分で確認した事項等は以下の通りです: ・ ローカルでは動作する ・ パーミッションは755になっている ・ アスキーモードで転送している (バイナリモードでも試してみた) ・ 文字コードは UTF-8 で、プログラム内にも # -*- coding: utf-8 -*- としている ・ import したのは cgi, urllib, re, time ・ cgitb を試みたが、使えていない
shebang
Pythonへのパスが間違ってるんじゃねえの?
apacheのログみろ
>パーミッションは755 これだろ
124 :
119 :2008/12/31(水) 16:40:57 ID:FXljk5zO
>>121 Python へのパス
同じ場所に別のcgiプログラムを置いたところ、パス指定が同じで正常に動作しますので、それはないと思われます。
>>120 >>122 shebang / apache
当方詳しくないものでわかりません、調べてみましたが使い方とかが…
正常に動くプログラムを部分的に改変することにより再現しようとしたら、文字コードを UTF-8 に (同時に、パスの次の行に
# -*- coding: utf-8 -*-
と) したらエラーが発生することがわかりました。
しね
126 :
nobodyさん :2008/12/31(水) 18:04:34 ID:kx00N+c5
>>124 UnicodeEncode(Decode)Error
とか出てない?
127 :
119 :2008/12/31(水) 18:26:15 ID:FXljk5zO
>>126 ローカル実行時は出ていません。
サーバ実行時はこんだけです:
500 Error - Internal Server Error
CGIもしくはSSIが正しく動作していません。
>・ cgitb を試みたが、使えていない import cgitb; cgitb.enable() これでもだめ(500 Error - Internal Server Error がでる)って言う意味か?
>同じ場所に別のcgiプログラムを置いたところ、パス指定が同じで正常に動作しますので、それはないと思われます。 動くものと動かないもののソース晒せ
130 :
nobodyさん :2008/12/31(水) 19:59:42 ID:kx00N+c5
解決しました ありがとうございました
131 :
119 :2008/12/31(水) 20:38:51 ID: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 -*-
を追加しただけ
target.read() 二回実行して問題ないんかな
133 :
119 :2008/12/31(水) 22:29:30 ID:FXljk5zO
>>132 UTF-8 でないものは2回実行しても動きます。
UTF-8 のものは1回でも動きません。
どうやら来年に持ち越しのようですね…。
池■田大■作の本名はソン・テチャク。小泉純一郎、小沢一朗は朝鮮人。
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/
136 :
119 :2008/12/31(水) 23:38:28 ID:FXljk5zO
>>135 公開できない文字列を含む部分などを隠していますが、テストコードの段階であることは確かですね。
しかし、より小さいコードで試した結果などから、原因は文字コード周りにあると考えてよいと思います。
この点についてはサーバ管理者に問い合わせましたが、年末につき返信待ちであります。
よいお年を
python初心者がはまる典型的なパターンじゃないかな
>>136 「ファイルは出来てない」はプログラムが完成していないという意味じゃなくて
<ここまでに死んでるのか
data = open(filename, "w")
data.write(target.read())
data.close()
<この辺で死んでるのか
print target.read()
を知りたかった訳なんだけど
どう?
140 :
119 :2009/01/01(木) 00:03:06 ID:l/3teeKT
年明けとほぼ同時に解決しましたw 悪の元凶: Windows メモ帳 直接原因: UTF-8 には入れるべきでない余分なヘッダ (?) 3バイトがファイル先頭に挿入されていた 対策: バイナリエディタで開いて先頭3バイトを削除して保存しなおす
141 :
【大吉】 :2009/01/01(木) 00:09:53 ID:???
あけおめ
pythonってBOMに対応してなかったっけ?
>UTF-8 には入れるべきでない余分なヘッダ (?) 3バイトがファイル先頭に BOMのことか それを「UTF-8 には入れるべきでない」っつーのは言いがかりだな まあそれが原因で shebang が利かなくなってたのは確かだが Windows メモ帳 を悪の元凶と言うのは素人
144 :
【だん吉】 :2009/01/01(木) 00:23:45 ID:fHn+ttSa
>>142 python自体はBOM付いてても受け付けるけど
shellが解釈する時点でだめでしょ
悪の元凶: Windows メモ帳 に同意
△悪の元凶: Windows メモ帳 ○悪の元凶: Windows メモ帳を使用
147 :
【大凶】 :2009/01/01(木) 17:22:06 ID:???
あけおめ!
大凶ワロタw
>>144 shebangを解釈するのはカーネルだけどね
Python CGI に <input type="submit"> および <input type="reset"> を書いたとします それぞれをクリックしたら何が起こるんでしょうか?
>>150 submit…一緒に出力されているhtmlでsubmitの親ノードになってるformのactionに対して送信する
reset…一緒に出力されているhtmlでresetの親ノードになっているform内のinput/select/textarea等がクリアされる
PythonのCGIって言っても単にブラウザに向かってHTML(たまにCSVとかXMLとかバイナリとか違うものも吐くけど)
を吐き出してるだけなんで、普通のHTMLと同じ挙動をするだけだよ。
152 :
150 :2009/02/13(金) 20:37:43 ID:???
あーごめんなさい、書き方が悪かったみたいですね その「送信された側」などの関係がわからないのです。
154 :
150 :2009/02/13(金) 22:21:19 ID:???
>>153 そうです、そこ見てたんですよ。
Python 勉強しはじめて、ローカルで動くプログラムはいろいろ書いてはいるんですが
送信側と受信側との関係? というか…
FieldStorage() して getlist(name) というのはわかったのですが
どうやってデータをここに入れてあげればいいのかが…
>>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 :2009/02/13(金) 23:39:29 ID:???
まったくないですね… なるほど Python に限った話じゃないからリファレンス見てもほとんど書いてなかったのか 上のコードの場合、FieldStorage() は python.cgi の中でするんでしょうか。これで合ってれば、ほぼ理解できました。
158 :
150 :2009/02/14(土) 00:26:36 ID:???
なるほど、よくわかりました。ありがとうございます! サンプルの方は既に見てましたよ〜。
160 :
150 :2009/02/14(土) 16:20:41 ID:???
こういう人は、皮肉でもなんでもなくPerlCGIから入った方がいいような気がする。 WEBアプリ、特にCGIの入門者が躓きやすいところの情報は、未だにPerl CGIの頃の情報が一番豊富だろ。 んで、悪い癖がつく前にPythonなりRubyなりに移行すれば(またはしなくても)いいんじゃないかと。
ほぼ同意だけどPHPのほうが良いと思う。 WEBに特化してるだけあってそのあたりのことも マニュアルで解説されてる。 ただし、Perl以上にPHPのほうが癖が強かったりする。
163 :
nobodyさん :2009/02/18(水) 19:38:12 ID:q8sXwxpK
cgiの仕様は糞 checkboxの受け取り方とかタヒネとか思う
タヒネってなんですか?
人生そのものだよ
166 :
nobodyさん :2009/04/26(日) 16:13:15 ID:+askKVed
質問です。
PythonをWebアプリからはじめて
ゆくゆくはGUIもやってみたいなと思ってる初心者ですが
オススメの書籍は
>>159 の他にありますか?
Webアプリのセキュリティあたりにも触れているととても幸せです。
現在チュートリアル見てちまちまと勉強中です。
ソースコードがシンプルで好きになれそう…
pythonをwebで使うならDjangoのようなフレームワーク使うのが良いと思うね
168 :
nobodyさん :2009/04/26(日) 16:19:43 ID:+askKVed
>>167 いずれはそうしたいと思うんですが
はじめからFWやると細かい部分吸収されちゃって学習出来なさそうなんで
俺俺FW作りつつ勉強してみたいなと思ってます
Webアプリ作っていくならPython本より他の本読んだ方がマシだと思われ 身になること書いてないしサンプルコードとモジュールのソースコード読みながらやっていく方が楽だ
170 :
166 :2009/04/26(日) 18:42:27 ID:???
出先からですが、解答ありがとう 書店きてみましたがPython本の品薄っぷりに泣きました。 暫らくWeb上で調べながらやってみます!
WSGIの質問はここでいいですか?
どうぞ
質問です! 最近、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." アクセスすると真っ白です。 どなたかお助け願います。お願いしますよろしくお願いします!
どうやらインタープリターの呼び分けが ハードコーディングされてるっぽいから 単にPythonに対応してないんでしょ。 ApacheやIISの方が、導入敷居が高くても 結局は情報がたくさんそろっててはまりづらいと思うよ。
#!c:\\python\\python.exe とかって書けば動いたぞ
何時の時代の話だ?ってレベル
それコピペ
winで鯖立てるレベル
意外と便利だよ。Excelファイルごにょごにょとか
#!/usr/bin/python
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
とりあえず保守
183 :
nobodyさん :2009/08/07(金) 02:25:12 ID:tKq4DxW5
無料ホームページスペースでpython CGIを動かしたいと思っています。 CGIの内部で、BeautifulSoupを使いたいのですが、 BeautifulSoup.pyを、与えられたスペースに置けば使うことができるのでしょうか?
184 :
nobodyさん :2009/08/07(金) 03:07:58 ID:tKq4DxW5
183です。自己解決しました。 置けば使うことができる。 しかし、BeautifulSoupの場合はコード量が多すぎるのか memory errorになる。 (もっと小さいオリジナルライブラリなら動く)
etreeでがんばるしかないね
186 :
nobodyさん :2009/08/15(土) 04:13:53 ID:LWrcnMLs
.
188 :
nobodyさん :2009/10/03(土) 23:03:34 ID:9tHx6UBF
PythonってLL言語の中では最速って本当ですか? サーバサイドで使う場合でもPHPよりも優れたパフォーマンスを出せるかどうか心配です。
wsgi
mod_pythonは?
ぷゅあCGIじゃない
>>188 動的な言語での最速はLuaか最近のJavaScriptじゃないかな。あとRuby1.9とか。
Pythonは、mod_python使うとPHPより速かった。
ただ共有サーバではmod_python使えないので、PHPより速いかどうかは「環境依存」としか言えない。
あとPHPとPythonの速度を気にするよりも、フレームワークやライブラリの速度を気にした方がいい。
>>193 あーごめん、追記ね。PHPはAPS入れるとmod_pythonより速いかもしれない。
そういうのも含めて、やっぱり「環境依存」だね。
Pythonは決してPHPより遅いわけではない。でも環境によりけり。
Python(>=2.5)+SQLite3爆速
mod_pythonの仕様はないよなぁ 作り直したりしないのかな
python web framework って流行ってないの。 やるなら実質 gae 一択? pylons しこしこいじってるんだけど、寂しいよ。
自分の場合 django あるいは wsgi で自作 Framework
gaeは糞w
django一択になってしまったなぁ。 最初はpylonsやtgにも期待してたんだけど。
web.pyでいいよもう
204 :
199 :2009/12/05(土) 00:23:15 ID:???
>>203 web.py の minimal 感良いですね。知らなかった。pylons も minimal な感じが気に入ったんだけど、こっちのが良いかな。
でも pylons より情報少ない感じですね?
CherryPyでいい気がしてきた。
206 :
sage :2009/12/14(月) 17:21:38 ID:DjxYEeHj
werkzeugの話題がまったくでないなー
ヴェルクゾイク
アルツハイマー
211 :
nobodyさん :2010/03/12(金) 22:20:20 ID:ervBW8Jl
pythonでformの値を受け取る処理ってどんなの? phpだと <?php $name = $_GET['name']; echo $name; ?> こんな感じだけど。
def post(self, name): return ([name])
そうなのか。知らなかった。
wsgi
えっ?
えっ?
えっ?
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']
えっ?
def post(self, name): return ([name]) 第二引数に渡されるのはstart_responseです。
えっ?
お互い噛み合ってないのがそんなに楽しいの。
えっ?
なにそれこわい
えっ?
( ^ω^)えっえっ
( ^ω^)おっおっ
os.environ['hoge'] cgi.FieldStorage()['hoge'] の文字コードを調べる方法があれば教えてください。Pythonのバージョンは2.5です
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)
>>211 import cgi;
f = cgi.FieldStorage()
value = f.getvalue('name','')
print value
初めてのPython読んでるけど、これ凄いじゃん。 流行ってないのが信じられないくらい。海外では流行ってるのかな?>PythonCGI
海外ではCGIが廃れてるよ
つかWSGIの話題ってここでおk???
おk
廃れてんのかよ、そりゃ残念だ
誤解ではないかと。 狭義の意味でのCGIは廃れていいと思う。重いから。 FastCGIで自由にプロセスをまわしたい。
廃れてるつぅかPHPが圧倒的に盛んなだけ。 海外でも無料のレン鯖はCGIでPHP使うなら有償ってのが普通
>>240-241 なるほど。
そこらへんの共有レンタルサーバーじゃmod_pythonもFastCGIも使えなさそうだから、CGIとして使う機会はないのかも…
クライアントアプリ作るならC#のほうがよさそうだし、おとなしく遊び&学習目的にして、PHPで書くか…
ありがとうございました。
俺が知ってるとこだと@pagesがPython使える 国内の無料鯖 今の募集状況知らんけどphpも使えるし垢取れたらとっとけば?
xrea
あれ?xreaも使えるんか んじゃそっちの方がいいか
Pythonのお勉強 でもPerlのwiki(笑)
いや、ただのCGIとしてなら有料鯖なら大抵動かせるんだけど、FastCGIは動かせなかったり、バージョンが2.3だったり… バイナリCGIとして動かすって手もあるんだね。 標準ライブラリだけで作るとしたら、どれくらいのサイズになるんだろう。
wsgiがあればpythonのフレームワークなんていらないのだろうか
うん
RoR に感化されたので PoR 作ってみた wsgi 使って案外あっさり作れた
(´・ω・`)
wsgiでphpで書いてあるソフトのアドオンつくれないのかな をwordpressとか
(´・ω・`)
256 :
nobodyさん :2010/05/02(日) 18:55:34 ID:U6XonqdJ
(´・ω・`)
(`・ω・´) age
258 :
nobodyさん :2010/05/03(月) 15:27:24 ID:nSJx/Nkb
(´・ω・`) nullpo
蛾
web.pyは素晴らしいなー
262 :
nobodyさん :2010/07/06(火) 21:06:35 ID:vP77FDaw
age
pythonでcgi書いてる奴少ないんだな hello worldから先に進まん俺はどこへ行けば……。
djangoスレへどうぞ
墓場に行けということですね
いいえ墓場ではなくて温泉です
アッー!
名前だけみてcherrypyを選んだ
>>263 書いているよ
人に教えられるほどではないけど
270 :
nobodyさん :2010/11/12(金) 18:04:49 ID:S/psY6Sg
┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい!
271 :
nobodyさん :2011/01/16(日) 16:41:31 ID:Vmy6wBJQ
PythonでのCGIの勉強をしようと思っております。 PerlではTemplateToolKit、PHPではSmartyなどのテンプレートエンジンがありますが、Pythonでは一般的に テンプレートエンジンとしてどういったものが使われているのでしょうか? また、PerlのCGIモジュールのようにCGIを利用するためのモジュールはありますか?
tempita import cgi
これも便利 import cgitb
import cgitb; cgitb.enable
>>263 最近、pythonでHTTPレスポンスヘッダを取得する装置とか作った程度のレベル
まだレベル的に早いと思ったけどpythonクックブック注文して入荷待ち状態
cgiとcheetahの日本語リファレンスってないの? 検索しても、比較サイトくらいしか出てこないんだが
Pythonの勉強をしているのですが、良質な掲示板のサンプルはありませんか? PythonCGI自体が少ないので、良質なものを取捨選択するのがなかなか難しいです
Perlとかの掲示板を移植する作業をしてみてはどうだろうか。
ありがとうございます そういった作業などでも勉強できると思うのですが、 まずはPythonでCGIを作る上でのノウハウというか効率的な書き方や、通例などを勉強したいと思っており 既存のソースコードを読みたいと考えています。
wsgi
形から入ろうとして結局何もしないの典型的なパターン
こう寒いと温泉に入りたくなる
参考になるレベルじゃないけど、簡単なお題を決めて 試行錯誤すると気楽だし使い回しできるかもね 入力必須チェックとかメールアドレスチェックとか
自分でテンプレート作るのはなかなか楽しい
287 :
nobodyさん :2011/02/26(土) 01:44:07.03 ID:sf4jvDci
誰かみんPyのO/Rマッパーかhtmlテンプレートのソース晒してくれないか 打ち込んだは良いがエラー発生するわ面倒くさいわで駄目だわ
>>288 おー駄目元で聞いてみたんだけどどうもありがとう!
ソース写経するの間違えたりして大変なんだよね
馬鹿には無理
291 :
nobodyさん :2011/02/26(土) 21:20:05.07 ID:OABn/feM
しっかしpythonスレはことごとく廃れるな なぜだ
答えは簡単、Pythonに需要がない
個人的には重宝してるけど、書き込む話題とか持ってないからなあ
294 :
nobodyさん :2011/03/01(火) 18:12:41.28 ID:0g7hFjNK
linuxでは必須になりつつあるだろ
なんでも入ってるごった煮 それがLinuxだからな
>>294 Linux Standard Base 3.2(LSB3.2)にPythonが入ったからね
今でも鯖管理関係もperl出来ないとつらいかな? Pythonだけで戦えないもんかな〜
298 :
nobodyさん :2011/03/02(水) 23:31:08.39 ID:RV5SmflQ
遅かれ早かれ置き換わるだろうけどな
GentooではPython必須
>>297 うちは perl 駆除続けてる
ほとんど完了しつつある
>>297 perlを使わない事は出来るけどperlを削除することは出来ない
Perlでアプリ書くことはもう無いけど sed/awkの代替・短いスクリプトはperlがまだ適当じゃない? Textutilsみたいなもんで使えて当たり前的な。サーバ管理なら特に。
CentOSでもPython抜くとカーネル死ぬんだってなw
なんじゃそりゃ
馬鹿を相手にするな
PHPのソースPythonに置き換えするのって簡単かな? PHPはサンプル本がたくさんあるからそこからインスピレーションを得ないとどうやって作っていいのかわからん
アリだけとマンドクセ
ただの置き換えなら意味が無い コンセプト理解したら Python の利点が生かせるものを新たに書き起こす方が良い そういう意味では CGI よりも WSGI の方が良いでしょう
誘導されてきました。ここであってますでしょうか。 pylonsを勉強し始めたんだけどいろんなサンプル見ても 各コントローラでコミット文を書いてるだけどそういうもん何でしょうか トランザクションマネージャーみたいのものってないのしょうか
やっぱPHPが強すぎるのか…?
PHPとかオワコン。 すぐにPythonにとって変わられる
そうか安心した
PHPは鯖サイドの言語だから仕方ないお PythonやPerlでネイティブなGUIアプリ書けるけどPHPでは無理
PHPは嫌いだけど PHPでもGUIは作れるよ
pythonはともかくperlのGUIライブラリとかほとんどメンテされてないからなぁ phpのGUIと同レベル
単に出来るのと実用的に問題ないのとは超えられない壁があるからな
WSGIがもっと普及すれば…
319 :
nobodyさん :2011/04/21(木) 20:32:07.14 ID:O9on9yzH
WSGIってただの概念じゃなかったっけ? テンプレート間の互換性の為の
何言ってんの?
>>314 ネイティブなGUIアプリはCとかC++とかDelphiとかじゃないとムリだろ。
322 :
nobodyさん :2011/05/10(火) 19:28:32.81 ID:LKZwrKek
つwxPython
wxPHP
ネイティブの意味を判ってない馬鹿がいるな
Pythonの正規表現について伺います re, sub, replace, etc...などPythonには沢山の正規表現モジュールがありますが 下記のPHP正規表現の否定はPythonではどう書いたらいいのでしょうか? if (!ereg("{$_SERVER['PHP_SELF']}", "{$_SERVER['REQUEST_URI']}")) 条件式の判定に使いたいのです。
ム板で聞いた方が良い
327 :
325 :2011/06/08(水) 02:51:26.49 ID:???
解りました、移動します ム板はCGI嫌うからサーバー変数は隠したほうがいいかな 行ってきます
>>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:
で済むはずです。
友達の非公開用自鯖でPython3でCGIを勉強したのは良いんだけど Python3が使えるレンタルサーバが無い
VPSなら自分で入れられるだろ
そんなものがあったのか
pyramidのドキュメント増えてきた
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メソッドがどのように実行されたのか教えて貰えないでしょうか。
こぴぺ乙
335 :
nobodyさん :2011/10/29(土) 04:52:13.01 ID:E8b4spx6
pyramid
保守
馬鹿には無理
今、web.pyでC/S型のコミックビューア作ってます。 ローカルサーバに保存してある(jpg).zip形式のコミックデータを、iPadやAndroid等のブラウザで読めるようにすることが目標です。 そこで、質問なのですが、現在、(jpg).zip書庫の取り扱いで悩んでいます。 zip書庫を解凍することなく、中身のjpg画像を取り出し、HTMLとして表示する、にはどうすればいいのでしょうか? zipfileモジュールを使って、zip書庫からjpgデータを取り出し、変数に格納することはできました。 が、それをブラウザで表示できるようにする方法がわかりません。 ちなみに、変数に格納したjpgデータをprintしてみたら、プロンプトにバイトコード(?)が出力されました。 よろしくお願いします。
MHTMLでも使おうかなって思ったがどうなんだろう
>>338 ヘッダーでContent-typeをjpegにしてからprintしてる?
341 :
338 :2011/12/09(金) 17:35:23.80 ID:???
「Content-type python」などのキーワードで、ググってたら、
たまたま画像を表示するサンプルコードを公式ページで見つけたので、それを真似したところ、うまくいきました!
http://webpy.org/images openメソッドで開いた画像データをreadメソッドで読み取り、それをreturnすると、画像を表示できるんですね〜。
自分は、「HTMLのタグで画像を直接指定する(こういうやつ→<img src="./static/gazou.jpg" />)」という表示法しか知らなかったので、行き詰ってました。
どうもありがとうございました。
あれ?みんpy web公開で賑わっているかと思ったが。
343 :
338 :2011/12/27(火) 22:43:38.89 ID:???
ム板で糞本として盛り上がってる
この書評みて買おうとは思えないよねえw
小さいの作るならflaskでいいし、大きいの作りたいならどじゃんごやpylons/pyramidつかえばいいしな。 わざわざCGIどうのこうのしようと思わないな
いや、PythonはCGIだと思う。 というかPythonはCGIしか使えないレンタルサーバが多いし。
349 :
nobodyさん :2012/04/13(金) 17:33:31.44 ID:fTA/7IiR
なぜにレンタルサーバー限定?
350 :
nobodyさん :2012/11/28(水) 13:26:24.69 ID:lZcnappL
werkzeug
351 :
nobodyさん :2013/01/09(水) 20:12:16.11 ID:R2XeVya2
CGI用のsessionライブラリはないのかな? 関連のキーワードでぐぐると、自作したって話題がちょいちょい出てくるだけなんだが
自作したよ
「Python CGI WSGI」スレがたつのは2030年になるな、このレス数だと
354 :
nobodyさん :2013/01/11(金) 16:39:32.83 ID:TsMR9PmK
前はあったよ
355 :
nobodyさん :2013/09/18(水) 12:06:57.99 ID:gKUd666P
garagara
356 :
nobodyさん :2014/03/24(月) 19:02:38.39 ID:r7fEJCEn
新年あけましておめでとうございます
357 :
nobodyさん :2014/04/22(火) 17:28:22.15 ID:xLyYt3aL
358 :
nobodyさん :2014/04/23(水) 22:19:27.09 ID:epxYuM7n
WSGIを使ったプログラムをいくつかサーバで動かすと、なぜか他のプログラムが表示されることがあります。 ApacheのVirtualHostを利用していくつかのプログラムをサブドメインに関連付けているにも関わらず、 別のサブドメインのページが表示されるといった感じです。 それに関連するのかSQLiteのエラーも出まくります。 これは何が原因なのでしょうか
360 :
nobodyさん :
2014/10/21(火) 18:03:44.20 ID:no1UJMbX