CodingFirst

C言語、Perl、JavaScript、最近はPythonも。出来上がったものより、プログラムを書くことが好き。あと、スイーツ。

スポンサーサイト

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PythonでCookieを取得/設定する

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

PythonのSimpleCookieを使って、Cookieの取得、設定を試した。

目的としては、
単にCGIで過去にフォームに入れた名前を取得できればよく、
それならSimpleCookieで充分っぽい。

SimpleCookieは、公式ドキュメントの
20.22. Cookie ― HTTPの状態管理 ― Python 2.6.2 documentation
を参考にした。

Pythonで書いたCookieのお試しCGIのソースコードはgistに置いた。
https://gist.github.com/956496

最初にアクセスしたときのスクリーンショット

cgi-cookie-1.png

formに"hoge"と入れてsubmitした後のスクリーンショット

cgi-cookie-2.png

実用上は下のコードにする予定。試してないけど。

#!/usr/bin/env python
import os,cgi,cgitb,Cookie; cgitb.enable()
import datetime
sc=Cookie.SimpleCookie(os.environ.get('HTTP_COOKIE',''))
expires=datetime.datetime.now()+datetime.timedelta(days=1)
name=cgi.FieldStorage().getfirst('name',
  sc.get('name').value if sc.has_key('name') else 'anon')
sc['name']=name
sc['name']["expires"]=expires.strftime("%a, %d-%b-%Y %H:%M:%S GMT")
print "Content-Type: text/html"
print sc.output()
print """ 
<html><body><form method="post">
<input type='text' name='name' value='{0}'/>
<input type='submit' value='submit' />
</form></body></html>""".format(name)
スポンサーサイト

Pythonで簡易掲示板を作った

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

Pythonで簡易掲示板を書いた。
CGIPythonを動かし、表示側はJavaScript

まずはスクリーンショット。

mini-bbs.png

単純に文字を書き込めるだけ。
ソースコード上はスレッドとか意識して書いたけど、
UIがピンとこなかったので対応せず。

そうそう。Pythonで書く初のコードでした。
書いた感じ、すごくシンプルでとっつきやすかったんだけど、
コードをググって探すのがちと大変。
チュートリアルくらい読んでからはじめるべきかも知れない(あたりまえ?)

さて。コード的には shelveというのが特徴的だったので使ってみた。
ハッシュディクショナリを簡単に保存、読み込みができる。
これ、すごい楽でいいな。
個人的にはデータはテキストの方が好きだけど、
ぱっと何か作る時には積極的に利用すべし。

他は、リスト、ディクショナリの操作などなどで
大したことはないかな。

そうそう。JavaScriptで少し苦労した。
createElement したエレメントに onclick を設定しても呼ばれない。
これは、addEventListener()を使うのが正解らしい。こんな感じ。

var del=document.createElement('input');
del.type='button';
del.value='del';
del.addEventListener('click',(function(id){return function(){
  if(confirm("delete?")==false) return false;
  form1.q.value='del';
  form1.date.value=id;
  form1.submit();
}})(date));

作ったスクリプトは gistに置いた。
https://gist.github.com/912445


Pythonで評判が良さそうだった本をあげておく。
GAEやるようになったら買おう。




みんなのPythonみんなのPython
(2006/08/22)
柴田 淳

商品詳細を見る


初めてのPython 第3版初めてのPython 第3版
(2009/02/26)
Mark Lutz

商品詳細を見る


PythonクィックリファレンスPythonクィックリファレンス
(2004/03)
アレックス マーテリ

商品詳細を見る

Pythonはじめました。hello worldとCGI。

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

Pythonはじめました。
とりあえず、Hello wolrd的なこと。

PCはUbuntu10.04で最初からpython入ってて
特に外部モジュールとか入れた記憶なし。
まずはバージョン確認

$ python -V
Python 2.6.5

現在の最新は 3.2で、2.x系は 2.7。
ちょっと古いな。あと、GAEは 2.5 ベースらしい。
やだなこれ。はまるパタンだ。
といっても、しばらく先の話だろう。まず手を動かそう。

$ cat > hello.py
#!/usr/bin/env python
print "hello"
$ python hoge.py
hello

helloと出せた。けど、pythonな特徴はどこにもない。
まぁそれはいいとして、
今後、GAEを使いたいので CGIも試してみる。

cat > hello.py
#!/usr/bin/env python
print "Content-Type: text/html"
print
print "HELLO

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
"

そういえば .py の設定してなかった。

$ cat .htaccess 
Options Indexes FollowSymLinks ExecCGI
AddHandler cgi-script .cgi .pl .py

これで hello.py が表示できる。
けど、これだとデバッグしづらい。エラーをモニタしたい。
そんなときは、cgitb を使うらしい。

$ cat hello.py 
#!/usr/bin/env python
import cgitb
cgitb.enable()
print "Content-Type: text/html"
print
print "HELLO

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
" print 1/0

以下にスクリーンショット。

hello-py.png

hello world的なお試しはこれで充分かな..



初めてのPython 第3版初めてのPython 第3版
(2009/02/26)
Mark Lutz

商品詳細を見る


みんなのPythonみんなのPython
(2006/08/22)
柴田 淳

商品詳細を見る

Perlで簡易メモCGIを書いた

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

PerlCGIスクリプトで、超簡単なメモを作った。

スクリプトはいたって簡単で、
エディタはtextareaだし、cgiはファイルの読み書きだけで、
排他制御や履歴のような便利機能は一切つけてないので、 ほとんど何にもしてない。

mini-memo.jpg

スクリプトはgistに貼った。
https://gist.github.com/888228

CGIとか、HTML:TemplateのようなPerlモジュールを使う練習。
ちょこちょこ作って腕をあげなくてはっ。


Perl CPANモジュールガイドPerl CPANモジュールガイド
(2011/04/08)
冨田尚樹

商品詳細を見る

Perlプログラミング救命病棟 (Programmer’s foundations)Perlプログラミング救命病棟 (Programmer’s foundations)
(2005/09/06)
ピーター・J・スコット

商品詳細を見る

 | HOME |  »

Search

Recent Entries

Foot Print



Categories

Monthly

Recent Comments

Recent Trackbacks

Profile

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。