トップページ⇒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
01521502009/02/13(金) 20:37:43ID:???
あーごめんなさい、書き方が悪かったみたいですね
その「送信された側」などの関係がわからないのです。
0153nobodyさん2009/02/13(金) 20:43:19ID:???
>>152
ブラウザの実相にもよるけど、大抵のメジャーブラウザはresetはサーバーとの通信を
行わずローカルだけでやるはずなので、送信元になるのが何であっても(静的HTMLでも、
PythonのCGIが吐き出したHTMLでも、PHPやPerlCGIが吐き出したのでも)同じ動きです。

formからの送信を受け取る側がPythonのCGIなら、↓参照
http://www.python.jp/doc/release/lib/module-cgi.html
01541502009/02/13(金) 22:21:19ID:???
>>153
そうです、そこ見てたんですよ。
Python 勉強しはじめて、ローカルで動くプログラムはいろいろ書いてはいるんですが
送信側と受信側との関係? というか…
FieldStorage() して getlist(name) というのはわかったのですが
どうやってデータをここに入れてあげればいいのかが…
0155nobodyさん2009/02/13(金) 23:19:15ID:???
>>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をクリア
01561502009/02/13(金) 23:39:29ID:???
まったくないですね… なるほど Python に限った話じゃないからリファレンス見てもほとんど書いてなかったのか

上のコードの場合、FieldStorage() は python.cgi の中でするんでしょうか。これで合ってれば、ほぼ理解できました。
0157nobodyさん2009/02/13(金) 23:42:06ID:???
>>156
cgi.FieldStorage()は通信を受け取った側(>155のHTMLをそのまま使うとすると、おっしゃる通りpython.cgiの中で)
することになります。

↓に少しサンプルがあるので見てみてください。
http://www.python.jp/doc/release/lib/node561.html
01581502009/02/14(土) 00:26:36ID:???
なるほど、よくわかりました。ありがとうございます!
サンプルの方は既に見てましたよ〜。
0159nobodyさん2009/02/14(土) 09:03:11ID:???
ttp://www.amazon.co.jp/dp/4797341815/

入門書嫁。
01601502009/02/14(土) 16:20:41ID:???
問題がHTMLフォームの挙動を十分に理解していないことにあるとわかったので
http://www.kanzaki.com/docs/html/htminfo31.html htminfo32.html htminfo33.html を読んですっきりしました。
0161nobodyさん2009/02/15(日) 14:00:15ID:???
こういう人は、皮肉でもなんでもなくPerlCGIから入った方がいいような気がする。
WEBアプリ、特にCGIの入門者が躓きやすいところの情報は、未だにPerl CGIの頃の情報が一番豊富だろ。

んで、悪い癖がつく前にPythonなりRubyなりに移行すれば(またはしなくても)いいんじゃないかと。
0162nobodyさん2009/02/15(日) 22:49:01ID:???
ほぼ同意だけどPHPのほうが良いと思う。
WEBに特化してるだけあってそのあたりのことも
マニュアルで解説されてる。

ただし、Perl以上にPHPのほうが癖が強かったりする。
0163nobodyさん2009/02/18(水) 19:38:12ID:q8sXwxpK
cgiの仕様は糞
checkboxの受け取り方とかタヒネとか思う
0164nobodyさん2009/02/19(木) 19:04:35ID:???
タヒネってなんですか?
0165nobodyさん2009/02/19(木) 22:50:20ID:???
人生そのものだよ
0166nobodyさん2009/04/26(日) 16:13:15ID:+askKVed
質問です。
PythonをWebアプリからはじめて
ゆくゆくはGUIもやってみたいなと思ってる初心者ですが
オススメの書籍は>>159の他にありますか?
Webアプリのセキュリティあたりにも触れているととても幸せです。

現在チュートリアル見てちまちまと勉強中です。
ソースコードがシンプルで好きになれそう…
0167nobodyさん2009/04/26(日) 16:14:58ID:???
pythonをwebで使うならDjangoのようなフレームワーク使うのが良いと思うね
0168nobodyさん2009/04/26(日) 16:19:43ID:+askKVed
>>167
いずれはそうしたいと思うんですが
はじめからFWやると細かい部分吸収されちゃって学習出来なさそうなんで
俺俺FW作りつつ勉強してみたいなと思ってます
0169nobodyさん2009/04/26(日) 18:29:24ID:???
Webアプリ作っていくならPython本より他の本読んだ方がマシだと思われ
身になること書いてないしサンプルコードとモジュールのソースコード読みながらやっていく方が楽だ
01701662009/04/26(日) 18:42:27ID:???
出先からですが、解答ありがとう
書店きてみましたがPython本の品薄っぷりに泣きました。
暫らくWeb上で調べながらやってみます!
0171nobodyさん2009/05/05(火) 22:09:13ID:???
WSGIの質問はここでいいですか?
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
print "hello world."

アクセスすると真っ白です。
どなたかお助け願います。お願いしますよろしくお願いします!
0174nobodyさん2009/06/10(水) 22:27:31ID:???
どうやらインタープリターの呼び分けが
ハードコーディングされてるっぽいから
単にPythonに対応してないんでしょ。

ApacheやIISの方が、導入敷居が高くても
結局は情報がたくさんそろっててはまりづらいと思うよ。
0175nobodyさん2009/06/11(木) 21:30:24ID:???
#!c:\\python\\python.exe
とかって書けば動いたぞ
0176nobodyさん2009/06/12(金) 03:16:41ID:???
何時の時代の話だ?ってレベル
0177nobodyさん2009/06/12(金) 10:26:51ID:???
それコピペ
0178nobodyさん2009/06/12(金) 15:47:46ID:???
winで鯖立てるレベル
0179nobodyさん2009/06/22(月) 21:45:25ID:???
意外と便利だよ。Excelファイルごにょごにょとか
0180nobodyさん2009/06/28(日) 01:29:28ID:???
#!/usr/bin/python
0181nobodyさん2009/07/03(金) 06:25:05ID:???

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

0182nobodyさん2009/07/29(水) 23:21:51ID:???
とりあえず保守
0183nobodyさん2009/08/07(金) 02:25:12ID:tKq4DxW5
無料ホームページスペースでpython CGIを動かしたいと思っています。
CGIの内部で、BeautifulSoupを使いたいのですが、
BeautifulSoup.pyを、与えられたスペースに置けば使うことができるのでしょうか?
0184nobodyさん2009/08/07(金) 03:07:58ID:tKq4DxW5
183です。自己解決しました。
置けば使うことができる。
しかし、BeautifulSoupの場合はコード量が多すぎるのか
memory errorになる。
(もっと小さいオリジナルライブラリなら動く)
0185nobodyさん2009/08/11(火) 21:51:30ID:???
etreeでがんばるしかないね
0186nobodyさん2009/08/15(土) 04:13:53ID:LWrcnMLs
.
0187nobodyさん2009/08/20(木) 22:09:34ID:???
「Python 3.1.1」リリース
http://pc11.2ch.net/test/read.cgi/pcnews/1250773470/
0188nobodyさん2009/10/03(土) 23:03:34ID:9tHx6UBF
PythonってLL言語の中では最速って本当ですか?
サーバサイドで使う場合でもPHPよりも優れたパフォーマンスを出せるかどうか心配です。
0189nobodyさん2009/10/03(土) 23:32:03ID:???
wsgi
0190nobodyさん2009/10/08(木) 06:16:22ID:???
>>188
Pythonは重いyo
さようなら
0191nobodyさん2009/10/09(金) 22:11:15ID:???
mod_pythonは?
0192nobodyさん2009/10/10(土) 14:11:35ID:???
ぷゅあCGIじゃない
0193nobodyさん2009/10/16(金) 14:24:53ID:???
>>188
動的な言語での最速はLuaか最近のJavaScriptじゃないかな。あとRuby1.9とか。
Pythonは、mod_python使うとPHPより速かった。
ただ共有サーバではmod_python使えないので、PHPより速いかどうかは「環境依存」としか言えない。
あとPHPとPythonの速度を気にするよりも、フレームワークやライブラリの速度を気にした方がいい。
0194nobodyさん2009/10/16(金) 14:26:58ID:???
>>193
あーごめん、追記ね。PHPはAPS入れるとmod_pythonより速いかもしれない。
そういうのも含めて、やっぱり「環境依存」だね。
Pythonは決してPHPより遅いわけではない。でも環境によりけり。
0195nobodyさん2009/10/17(土) 04:57:06ID:???
Python(>=2.5)+SQLite3爆速
0196nobodyさん2009/10/17(土) 07:39:06ID:???
ttp://newworld.ddo.jp/doc/PerformanceTips/
日本語が下手過ぎて読み難いけど速度改善の参考にはなる
0197nobodyさん2009/10/17(土) 16:20:53ID:???
下手な翻訳よりもこっち読め
ttp://wiki.python.org/moin/PythonSpeed/PerformanceTips
0198nobodyさん2009/12/04(金) 02:12:35ID:???
mod_pythonの仕様はないよなぁ
作り直したりしないのかな
0199nobodyさん2009/12/04(金) 03:31:26ID:???
python web framework って流行ってないの。
やるなら実質 gae 一択?
pylons しこしこいじってるんだけど、寂しいよ。
0200nobodyさん2009/12/04(金) 11:45:04ID:???
自分の場合
django
あるいは
wsgi で自作 Framework
0201nobodyさん2009/12/04(金) 11:52:20ID:???
gaeは糞w
0202nobodyさん2009/12/04(金) 12:06:56ID:???
django一択になってしまったなぁ。
最初はpylonsやtgにも期待してたんだけど。
0203nobodyさん2009/12/04(金) 14:48:24ID:???
web.pyでいいよもう
02041992009/12/05(土) 00:23:15ID:???
>>203
web.py の minimal 感良いですね。知らなかった。pylons も minimal な感じが気に入ったんだけど、こっちのが良いかな。
でも pylons より情報少ない感じですね?
0205nobodyさん2009/12/11(金) 15:26:40ID:???
CherryPyでいい気がしてきた。
0206sage2009/12/14(月) 17:21:38ID:DjxYEeHj
werkzeugの話題がまったくでないなー
0207nobodyさん2009/12/15(火) 01:02:33ID:???
>>206
なんて読むの?
0208nobodyさん2009/12/15(火) 07:34:14ID:???
ヴェルクゾイク
0209nobodyさん2009/12/15(火) 07:38:21ID:???
http://d.hatena.ne.jp/perezvon/20090108/1231439151
ヴェルクツォイグ?
0210nobodyさん2009/12/15(火) 13:14:21ID:???
アルツハイマー
0211nobodyさん2010/03/12(金) 22:20:20ID:ervBW8Jl
pythonでformの値を受け取る処理ってどんなの?

phpだと
<?php
$name = $_GET['name'];
echo $name;
?>
こんな感じだけど。
0212nobodyさん2010/03/13(土) 04:58:15ID:???
def post(self, name):
return ([name])
0213nobodyさん2010/03/13(土) 10:35:27ID:???
>>211
cgi関数で拾ってくれる。
0214nobodyさん2010/03/13(土) 20:02:06ID:???
そうなのか。知らなかった。
0215nobodyさん2010/03/14(日) 10:39:03ID:???
>>212
なにこれ?
0216nobodyさん2010/03/14(日) 13:28:13ID:???
wsgi
0217nobodyさん2010/03/14(日) 13:39:51ID:???
>>216
なんか勘違いしてる
0218nobodyさん2010/03/14(日) 13:53:36ID:???
えっ?
0219nobodyさん2010/03/14(日) 18:03:26ID:???
えっ?
0220nobodyさん2010/03/14(日) 22:46:37ID:???
えっ?
0221nobodyさん2010/03/14(日) 22:50:22ID:???
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']

0222nobodyさん2010/03/14(日) 22:53:06ID:???
えっ?
0223nobodyさん2010/03/14(日) 23:17:42ID:???
def post(self, name):
return ([name])

第二引数に渡されるのはstart_responseです。
0224nobodyさん2010/03/14(日) 23:37:30ID:???
えっ?
0225nobodyさん2010/03/15(月) 01:06:07ID:???
お互い噛み合ってないのがそんなに楽しいの。
0226nobodyさん2010/03/15(月) 01:13:17ID:???
えっ?
0227nobodyさん2010/03/15(月) 01:21:29ID:???
なにそれこわい
0228nobodyさん2010/03/15(月) 01:37:57ID:???
えっ?
0229nobodyさん2010/03/15(月) 18:45:47ID:???
( ^ω^)えっえっ
0230nobodyさん2010/03/16(火) 02:37:45ID:???
( ^ω^)おっおっ
0231nobodyさん2010/03/16(火) 19:57:20ID:???
os.environ['hoge']
cgi.FieldStorage()['hoge']
の文字コードを調べる方法があれば教えてください。Pythonのバージョンは2.5です
0232nobodyさん2010/03/17(水) 07:19:18ID:???
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)
0233nobodyさん2010/03/17(水) 14:55:48ID:???
>>211

import cgi;

f = cgi.FieldStorage()
value = f.getvalue('name','')
print value
0234nobodyさん2010/03/17(水) 22:35:43ID:???
>>232
ありがとうございます
0235nobodyさん2010/03/21(日) 22:16:25ID:???
初めてのPython読んでるけど、これ凄いじゃん。
流行ってないのが信じられないくらい。海外では流行ってるのかな?>PythonCGI
0236nobodyさん2010/03/22(月) 03:50:53ID:???
海外ではCGIが廃れてるよ
0237nobodyさん2010/03/22(月) 07:00:39ID:???
つかWSGIの話題ってここでおk???
0238nobodyさん2010/03/22(月) 07:11:47ID:???
おk
0239nobodyさん2010/03/22(月) 16:50:00ID:???
廃れてんのかよ、そりゃ残念だ
0240nobodyさん2010/03/22(月) 22:39:31ID:???
誤解ではないかと。
狭義の意味でのCGIは廃れていいと思う。重いから。
FastCGIで自由にプロセスをまわしたい。
0241nobodyさん2010/03/22(月) 23:16:58ID:???
廃れてるつぅかPHPが圧倒的に盛んなだけ。
海外でも無料のレン鯖はCGIでPHP使うなら有償ってのが普通
0242nobodyさん2010/03/23(火) 00:29:59ID:???
>>240-241
なるほど。
そこらへんの共有レンタルサーバーじゃmod_pythonもFastCGIも使えなさそうだから、CGIとして使う機会はないのかも…
クライアントアプリ作るならC#のほうがよさそうだし、おとなしく遊び&学習目的にして、PHPで書くか…

ありがとうございました。
0243nobodyさん2010/03/23(火) 01:48:12ID:???
俺が知ってるとこだと@pagesがPython使える
国内の無料鯖
今の募集状況知らんけどphpも使えるし垢取れたらとっとけば?
0244nobodyさん2010/03/23(火) 05:21:48ID:???
xrea
0245nobodyさん2010/03/23(火) 07:42:38ID:???
あれ?xreaも使えるんか
んじゃそっちの方がいいか
0246nobodyさん2010/03/23(火) 08:24:10ID:???
Pythonが使えるサーバ一覧
ttp://python.rdy.jp/wiki.cgi?page=PythonAvailableServers
0247nobodyさん2010/03/23(火) 08:54:52ID:???
Pythonのお勉強

でもPerlのwiki(笑)
0248nobodyさん2010/03/23(火) 17:12:06ID:???
いや、ただのCGIとしてなら有料鯖なら大抵動かせるんだけど、FastCGIは動かせなかったり、バージョンが2.3だったり…
バイナリCGIとして動かすって手もあるんだね。
標準ライブラリだけで作るとしたら、どれくらいのサイズになるんだろう。
0249nobodyさん2010/03/23(火) 17:14:35ID:???
Python 2.6.5/3.1.2リリース
http://sourceforge.jp/magazine/10/03/23/048255
0250nobodyさん2010/03/23(火) 17:53:38ID:???
wsgiがあればpythonのフレームワークなんていらないのだろうか
0251nobodyさん2010/03/24(水) 03:24:36ID:???
うん
0252nobodyさん2010/03/24(水) 08:54:15ID:???
RoR に感化されたので PoR 作ってみた
wsgi 使って案外あっさり作れた
■ このスレッドは過去ログ倉庫に格納されています