Python CGI
■ このスレッドは過去ログ倉庫に格納されています
まぁ、この板ではサーバーサイドは何でもcgiって呼ぶからなぁ ネタがないかな。というか、あまりPython-CGIってやらないかな。 最小文字数 #!/usr/bin/env python print'\n' print 'Content-type: text/html\n' カウンター #!/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のモジュールを参考にしてますとか堂々と書いてるのも どうかと思う ネタ降ってみるか。 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で書くとして、テンプレートエンジンはどれがおすすめでしょうか。 >>14 WSGI サポートした app 作れるなら CGI で動かせる希ガス ttp://d.hatena.ne.jp/tokuhirom/20061128/1164680664 Zope とか Django あたりは WSGI サポートしてないかもだが、TurboGears とか Pylons とかはサポートしてたはず 使ってはいないんでわからんが cgi.FieldStorage()を使ってもうまくパラメータを取得できないような気がする mod_python の util.FieldStorage(req) でようやっと取得できた cgi.FieldStorage()のマニュアルをよく読め。 ttp://www.python.jp/doc/release/lib/node457.html ttp://www.python.jp/doc/release/lib/node458.html ああ、そもそもCGIとして呼ばれたものとmod_pythonから呼ばれたものを同類に考えるなって事かな・・・ W Server 2003 の IIS 7 で python CGI っていう組み合わせは変態ですか? そんなヘンタイさんのためのページがあったのでメモ ttp://code.djangoproject.com/wiki/DjangoOnWindowsWithIISAndSQLServer PythonでPerlで言う%ENVってどう取得するの? 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 には情報が入ってないということに気づいてなくて、 ハマった思い出がある・・・、それかも? 有料はほかにもいろいろあると思うけど、 無料は上2つしか見たこと無い、・・・ > 好きなの選べや 換言すれば国内だと上記二つということか なんかPythonでつくられたcgiってあんまり見ないね 海外だと多いの? weblog written by python これがどれだけ意味不明なフレーズであるか、書く前に気づかないものだろうか >>55 Weblog written "IN" Pythonな。 中学生は勉強しろよ。 Portable PythonにTurboGearsぶちこんだ人って、2chになら1人くらい居ますよね >>57 であってるとおもうけど、なにが違うの? >>59 普通、powered byを使うように思うが。 文章すらPythonで書かれていればどうか知らんが。 少し語弊があるか。 Pythonで書かれたブログシステムはwrittenでいいが、 それを利用したWeblogはpowered。 written by Guidoとはいうけど、written by Pythonとは言わないだろ。 勉強しろよ>中学生 なんで勝手に55=59にされてんのか意味不明だが、 >>57 は明らかにアホ。 外人に聞いてみろよ。ブログの内容pythonで書いてるのと勘違いされるぞ まだ悔し紛れに粘着してるのか もういいだろ written in Pythonでブログの内容をPythonで 書いてると勘違いするような基地外はいないよ お前くらいしか なんでつまらない話題で盛り上がってるの?バカなの? だよな。 written for Pythonで終わりの話だろ。 >>69 >外人に聞いてみろよ。 知り合いのロシア人に聞いてみたけど「わかんね」って言ってた(www> >>74 Python Desktop ServerがZope Baseとかないわ(www written by pythonでも通じると思うよ。 「パイソンさんによって書かれています」みたいな感じでしょ? Pythonが自分の意志を持って書いたんだったらいいんじゃね。 粘着してる暇があったら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が通常使う言語のひとつにしてるだけだがな・・・ 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' } 連想配列と辞書とリストの違いが解りません。 どういうこと? 変数が定義されているか判定したいんですが PHPでいうissetみたいなものはありますか? ありません。 NameErrorやAttributeErrorを捕まえてください。 try: a except NameError: print "aなし" else: print "aあり" 変数があるかないか調べなきゃいけないようなコードを書くほうが間違ってると思うけどな。 >>102 回答ありがとうございます プログラム(まずはCGI)の勉強のためにPythonを選びました。 何から始めたらいいのか分からなかったので配付されている PHPのスクリプトをPythonに移植してみようと思い立ちました。 まともに動くようになったら指摘された箇所を見直して見ようと思います。 そこまで理解が深まればの話ですけど。 >>> try: ... a File "<stdin>", line 2 a ^ IndentationError: expected an indented block except打つまえにこんなの出る >>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 PHP捨ててPythonに乗り換えようとしたけど、 日本語訳マニュアルに誤変換が多すぎてバカっぽいからやめるわ PHP使ってる人はPythonやっても幸せになれなさそうだよね・・・ PHPとともに生きるが幸せ ふむ。 一つの言語だけに絞るのもいいかも知れんね。 趣味ならば。 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' python 2.5 の cgi プログラムが動作しません。どのような原因が考えられますでしょうか。 自分で確認した事項等は以下の通りです: ・ ローカルでは動作する ・ パーミッションは755になっている ・ アスキーモードで転送している (バイナリモードでも試してみた) ・ 文字コードは UTF-8 で、プログラム内にも # -*- coding: utf-8 -*- としている ・ import したのは cgi, urllib, re, time ・ cgitb を試みたが、使えていない >>121 Python へのパス 同じ場所に別のcgiプログラムを置いたところ、パス指定が同じで正常に動作しますので、それはないと思われます。 >>120 >>122 shebang / apache 当方詳しくないものでわかりません、調べてみましたが使い方とかが… 正常に動くプログラムを部分的に改変することにより再現しようとしたら、文字コードを UTF-8 に (同時に、パスの次の行に # -*- coding: utf-8 -*- と) したらエラーが発生することがわかりました。 >>124 UnicodeEncode(Decode)Error とか出てない? >>126 ローカル実行時は出ていません。 サーバ実行時はこんだけです: 500 Error - Internal Server Error CGIもしくはSSIが正しく動作していません。 >・ cgitb を試みたが、使えていない import cgitb; cgitb.enable() これでもだめ(500 Error - Internal Server Error がでる)って言う意味か? >同じ場所に別のcgiプログラムを置いたところ、パス指定が同じで正常に動作しますので、それはないと思われます。 動くものと動かないもののソース晒せ >>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() 二回実行して問題ないんかな >>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/ >>135 公開できない文字列を含む部分などを隠していますが、テストコードの段階であることは確かですね。 しかし、より小さいコードで試した結果などから、原因は文字コード周りにあると考えてよいと思います。 この点についてはサーバ管理者に問い合わせましたが、年末につき返信待ちであります。 python初心者がはまる典型的なパターンじゃないかな >>136 「ファイルは出来てない」はプログラムが完成していないという意味じゃなくて <ここまでに死んでるのか data = open(filename, "w") data.write(target.read()) data.close() <この辺で死んでるのか print target.read() を知りたかった訳なんだけど どう? 年明けとほぼ同時に解決しましたw 悪の元凶: Windows メモ帳 直接原因: UTF-8 には入れるべきでない余分なヘッダ (?) 3バイトがファイル先頭に挿入されていた 対策: バイナリエディタで開いて先頭3バイトを削除して保存しなおす >UTF-8 には入れるべきでない余分なヘッダ (?) 3バイトがファイル先頭に BOMのことか それを「UTF-8 には入れるべきでない」っつーのは言いがかりだな まあそれが原因で shebang が利かなくなってたのは確かだが Windows メモ帳 を悪の元凶と言うのは素人 >>142 python自体はBOM付いてても受け付けるけど shellが解釈する時点でだめでしょ △悪の元凶: Windows メモ帳 ○悪の元凶: Windows メモ帳を使用 >>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 ブラウザの実相にもよるけど、大抵のメジャーブラウザはresetはサーバーとの通信を 行わずローカルだけでやるはずなので、送信元になるのが何であっても(静的HTMLでも、 PythonのCGIが吐き出したHTMLでも、PHPやPerlCGIが吐き出したのでも)同じ動きです。 formからの送信を受け取る側がPythonのCGIなら、↓参照 http://www.python.jp/doc/release/lib/module-cgi.html >>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をクリア まったくないですね… なるほど Python に限った話じゃないからリファレンス見てもほとんど書いてなかったのか 上のコードの場合、FieldStorage() は python.cgi の中でするんでしょうか。これで合ってれば、ほぼ理解できました。 >>156 cgi.FieldStorage()は通信を受け取った側(>155のHTMLをそのまま使うとすると、おっしゃる通りpython.cgiの中で) することになります。 ↓に少しサンプルがあるので見てみてください。 http://www.python.jp/doc/release/lib/node561.html なるほど、よくわかりました。ありがとうございます! サンプルの方は既に見てましたよ〜。 ttp://www.amazon.co.jp/dp/4797341815/ 入門書嫁。 問題がHTMLフォームの挙動を十分に理解していないことにあるとわかったので http://www.kanzaki.com/docs/html/htminfo31.html htminfo32.html htminfo33.html を読んですっきりしました。 こういう人は、皮肉でもなんでもなくPerlCGIから入った方がいいような気がする。 WEBアプリ、特にCGIの入門者が躓きやすいところの情報は、未だにPerl CGIの頃の情報が一番豊富だろ。 んで、悪い癖がつく前にPythonなりRubyなりに移行すれば(またはしなくても)いいんじゃないかと。 ほぼ同意だけどPHPのほうが良いと思う。 WEBに特化してるだけあってそのあたりのことも マニュアルで解説されてる。 ただし、Perl以上にPHPのほうが癖が強かったりする。 cgiの仕様は糞 checkboxの受け取り方とかタヒネとか思う 質問です。 PythonをWebアプリからはじめて ゆくゆくはGUIもやってみたいなと思ってる初心者ですが オススメの書籍は>>159 の他にありますか? Webアプリのセキュリティあたりにも触れているととても幸せです。 現在チュートリアル見てちまちまと勉強中です。 ソースコードがシンプルで好きになれそう… pythonをwebで使うならDjangoのようなフレームワーク使うのが良いと思うね >>167 いずれはそうしたいと思うんですが はじめからFWやると細かい部分吸収されちゃって学習出来なさそうなんで 俺俺FW作りつつ勉強してみたいなと思ってます Webアプリ作っていくならPython本より他の本読んだ方がマシだと思われ 身になること書いてないしサンプルコードとモジュールのソースコード読みながらやっていく方が楽だ 出先からですが、解答ありがとう 書店きてみましたがPython本の品薄っぷりに泣きました。 暫らくWeb上で調べながらやってみます! 質問です! 最近、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 とかって書けば動いたぞ 意外と便利だよ。Excelファイルごにょごにょとか ┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい! 無料ホームページスペースでpython CGIを動かしたいと思っています。 CGIの内部で、BeautifulSoupを使いたいのですが、 BeautifulSoup.pyを、与えられたスペースに置けば使うことができるのでしょうか? 183です。自己解決しました。 置けば使うことができる。 しかし、BeautifulSoupの場合はコード量が多すぎるのか memory errorになる。 (もっと小さいオリジナルライブラリなら動く) PythonってLL言語の中では最速って本当ですか? サーバサイドで使う場合でもPHPよりも優れたパフォーマンスを出せるかどうか心配です。 >>188 動的な言語での最速はLuaか最近のJavaScriptじゃないかな。あとRuby1.9とか。 Pythonは、mod_python使うとPHPより速かった。 ただ共有サーバではmod_python使えないので、PHPより速いかどうかは「環境依存」としか言えない。 あとPHPとPythonの速度を気にするよりも、フレームワークやライブラリの速度を気にした方がいい。 >>193 あーごめん、追記ね。PHPはAPS入れるとmod_pythonより速いかもしれない。 そういうのも含めて、やっぱり「環境依存」だね。 Pythonは決してPHPより遅いわけではない。でも環境によりけり。 ttp://newworld.ddo.jp/doc/PerformanceTips/ 日本語が下手過ぎて読み難いけど速度改善の参考にはなる 下手な翻訳よりもこっち読め ttp://wiki.python.org/moin/PythonSpeed/PerformanceTips mod_pythonの仕様はないよなぁ 作り直したりしないのかな python web framework って流行ってないの。 やるなら実質 gae 一択? pylons しこしこいじってるんだけど、寂しいよ。 自分の場合 django あるいは wsgi で自作 Framework django一択になってしまったなぁ。 最初はpylonsやtgにも期待してたんだけど。 >>203 web.py の minimal 感良いですね。知らなかった。pylons も minimal な感じが気に入ったんだけど、こっちのが良いかな。 でも pylons より情報少ない感じですね? pythonでformの値を受け取る処理ってどんなの? phpだと <?php $name = $_GET['name']; echo $name; ?> こんな感じだけど。 def post(self, name): return ([name]) 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は廃れていいと思う。重いから。 FastCGIで自由にプロセスをまわしたい。 廃れてるつぅかPHPが圧倒的に盛んなだけ。 海外でも無料のレン鯖はCGIでPHP使うなら有償ってのが普通 >>240-241 なるほど。 そこらへんの共有レンタルサーバーじゃmod_pythonもFastCGIも使えなさそうだから、CGIとして使う機会はないのかも… クライアントアプリ作るならC#のほうがよさそうだし、おとなしく遊び&学習目的にして、PHPで書くか… ありがとうございました。 俺が知ってるとこだと@pagesがPython使える 国内の無料鯖 今の募集状況知らんけどphpも使えるし垢取れたらとっとけば? あれ?xreaも使えるんか んじゃそっちの方がいいか Pythonが使えるサーバ一覧 ttp://python.rdy.jp/wiki.cgi?page=PythonAvailableServers Pythonのお勉強 でもPerlのwiki(笑) いや、ただのCGIとしてなら有料鯖なら大抵動かせるんだけど、FastCGIは動かせなかったり、バージョンが2.3だったり… バイナリCGIとして動かすって手もあるんだね。 標準ライブラリだけで作るとしたら、どれくらいのサイズになるんだろう。 wsgiがあればpythonのフレームワークなんていらないのだろうか RoR に感化されたので PoR 作ってみた wsgi 使って案外あっさり作れた wsgiでphpで書いてあるソフトのアドオンつくれないのかな をwordpressとか pythonでcgi書いてる奴少ないんだな hello worldから先に進まん俺はどこへ行けば……。 >>263 書いているよ 人に教えられるほどではないけど ┌─┐ │●│ └─┤ _ ∩ ( ゚∀゚)彡 ┌─┬⊂彡 │●│ おっぱい!おっぱい! └─┘ おっぱい!おっぱい! PythonでのCGIの勉強をしようと思っております。 PerlではTemplateToolKit、PHPではSmartyなどのテンプレートエンジンがありますが、Pythonでは一般的に テンプレートエンジンとしてどういったものが使われているのでしょうか? また、PerlのCGIモジュールのようにCGIを利用するためのモジュールはありますか? import cgitb; cgitb.enable >>263 最近、pythonでHTTPレスポンスヘッダを取得する装置とか作った程度のレベル まだレベル的に早いと思ったけどpythonクックブック注文して入荷待ち状態 cgiとcheetahの日本語リファレンスってないの? 検索しても、比較サイトくらいしか出てこないんだが Pythonの勉強をしているのですが、良質な掲示板のサンプルはありませんか? PythonCGI自体が少ないので、良質なものを取捨選択するのがなかなか難しいです Perlとかの掲示板を移植する作業をしてみてはどうだろうか。 ありがとうございます そういった作業などでも勉強できると思うのですが、 まずはPythonでCGIを作る上でのノウハウというか効率的な書き方や、通例などを勉強したいと思っており 既存のソースコードを読みたいと考えています。 形から入ろうとして結局何もしないの典型的なパターン 参考になるレベルじゃないけど、簡単なお題を決めて 試行錯誤すると気楽だし使い回しできるかもね 入力必須チェックとかメールアドレスチェックとか Tornado1.2リリース ttp://groups.google.com/group/python-tornado/browse_thread/thread/62d598b0e4e06b62/87f3c68827130bdf 誰かみんPyのO/Rマッパーかhtmlテンプレートのソース晒してくれないか 打ち込んだは良いがエラー発生するわ面倒くさいわで駄目だわ 漏れはいらんけど ほれ ttp://coreblog.org/ats/stuff/minpy-web-support/ ttp://coreblog.org/ats/stuff/minpy_support/frontpage >>288 おー駄目元で聞いてみたんだけどどうもありがとう! ソース写経するの間違えたりして大変なんだよね しっかしpythonスレはことごとく廃れるな なぜだ 個人的には重宝してるけど、書き込む話題とか持ってないからなあ なんでも入ってるごった煮 それがLinuxだからな >>294 Linux Standard Base 3.2(LSB3.2)にPythonが入ったからね 今でも鯖管理関係もperl出来ないとつらいかな? Pythonだけで戦えないもんかな〜 >>297 うちは perl 駆除続けてる ほとんど完了しつつある >>297 perlを使わない事は出来るけどperlを削除することは出来ない Perlでアプリ書くことはもう無いけど sed/awkの代替・短いスクリプトはperlがまだ適当じゃない? Textutilsみたいなもんで使えて当たり前的な。サーバ管理なら特に。 CentOSでもPython抜くとカーネル死ぬんだってなw ttp://d.hatena.ne.jp/s025236/20110325/p1 これだな PHPのソースPythonに置き換えするのって簡単かな? PHPはサンプル本がたくさんあるからそこからインスピレーションを得ないとどうやって作っていいのかわからん ただの置き換えなら意味が無い コンセプト理解したら Python の利点が生かせるものを新たに書き起こす方が良い そういう意味では CGI よりも WSGI の方が良いでしょう 誘導されてきました。ここであってますでしょうか。 pylonsを勉強し始めたんだけどいろんなサンプル見ても 各コントローラでコミット文を書いてるだけどそういうもん何でしょうか トランザクションマネージャーみたいのものってないのしょうか PHPとかオワコン。 すぐにPythonにとって変わられる PHPは鯖サイドの言語だから仕方ないお PythonやPerlでネイティブなGUIアプリ書けるけどPHPでは無理 pythonはともかくperlのGUIライブラリとかほとんどメンテされてないからなぁ phpのGUIと同レベル 単に出来るのと実用的に問題ないのとは超えられない壁があるからな WSGIってただの概念じゃなかったっけ? テンプレート間の互換性の為の >>314 ネイティブなGUIアプリはCとかC++とかDelphiとかじゃないとムリだろ。 Pythonの正規表現について伺います re, sub, replace, etc...などPythonには沢山の正規表現モジュールがありますが 下記のPHP正規表現の否定はPythonではどう書いたらいいのでしょうか? if (!ereg("{$_SERVER['PHP_SELF']}", "{$_SERVER['REQUEST_URI']}")) 条件式の判定に使いたいのです。 解りました、移動します ム板は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が使えるレンタルサーバが無い 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メソッドがどのように実行されたのか教えて貰えないでしょうか。 今、web.pyでC/S型のコミックビューア作ってます。 ローカルサーバに保存してある(jpg).zip形式のコミックデータを、iPadやAndroid等のブラウザで読めるようにすることが目標です。 そこで、質問なのですが、現在、(jpg).zip書庫の取り扱いで悩んでいます。 zip書庫を解凍することなく、中身のjpg画像を取り出し、HTMLとして表示する、にはどうすればいいのでしょうか? zipfileモジュールを使って、zip書庫からjpgデータを取り出し、変数に格納することはできました。 が、それをブラウザで表示できるようにする方法がわかりません。 ちなみに、変数に格納したjpgデータをprintしてみたら、プロンプトにバイトコード(?)が出力されました。 よろしくお願いします。 MHTMLでも使おうかなって思ったがどうなんだろう >>338 ヘッダーでContent-typeをjpegにしてからprintしてる? 「Content-type python」などのキーワードで、ググってたら、 たまたま画像を表示するサンプルコードを公式ページで見つけたので、それを真似したところ、うまくいきました! http://webpy.org/images openメソッドで開いた画像データをreadメソッドで読み取り、それをreturnすると、画像を表示できるんですね〜。 自分は、「HTMLのタグで画像を直接指定する(こういうやつ→<img src="./static/gazou.jpg" />)」という表示法しか知らなかったので、行き詰ってました。 どうもありがとうございました。 あれ?みんpy web公開で賑わっているかと思ったが。 >>342 うおおおおおおおーーーー!!!!!!!!!!! 知らなかった、マジサンクス。 来年、>>342 にいいことがありますように( -人-) ttp://coreblog.org/ats/minpy-web-is-now-free-to-read この本読んだひといますか? 感想聞かせてください WSGIウェブプログラミング ttp://www.amazon.co.jp/dp/4877832882/ 書評悪すぎてわろす 小さいの作るならflaskでいいし、大きいの作りたいならどじゃんごやpylons/pyramidつかえばいいしな。 わざわざCGIどうのこうのしようと思わないな いや、PythonはCGIだと思う。 というかPythonはCGIしか使えないレンタルサーバが多いし。 CGI用のsessionライブラリはないのかな? 関連のキーワードでぐぐると、自作したって話題がちょいちょい出てくるだけなんだが 「Python CGI WSGI」スレがたつのは2030年になるな、このレス数だと PHPで全角半角混在の文字列をキレイに短縮 ttp://www.renowan.com/blog/?p=681 これをpythonで行いたいのですが、可能でしょうか? WSGIを使ったプログラムをいくつかサーバで動かすと、なぜか他のプログラムが表示されることがあります。 ApacheのVirtualHostを利用していくつかのプログラムをサブドメインに関連付けているにも関わらず、 別のサブドメインのページが表示されるといった感じです。 それに関連するのかSQLiteのエラーも出まくります。 これは何が原因なのでしょうか ★マインドコントロールの手法★ ・沢山の人が偏った意見を一貫して支持する 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法 ・不利な質問をさせなくしたり、不利な質問には答えない、スルーする 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法 偏った思想や考え方に染まっていたり、常識が通じない人間は、頭が悪いフリをしているカルト工作員の可能性が高い 靖国参拝、皇族、国旗国歌、神社神道を嫌うカルト 10人に一人はカルトか外国人 「ガスライティング」で検索を!... 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 Q2YP6YQ2WW ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる