2010-01-01から1年間の記事一覧

PythonのWEBフレームワーク一覧

Webアプリケーションフレームワーク - Wikipedia 一番下にPythonのWEBフレームワーク一覧があったのでメモ

はじめての Django アプリ作成、その 3

はじめての Django アプリ作成、その 3 — Django v1.0 documentation View ViewからHtmlテンプレートを読み込むことが出来る django.shortcutsには良くある処理が含まれるので便利 urls.py UrlとViewの対応をつける mysite.polls.views.detailをロードviews.…

Django クエリを生成する部分

モデルクラス データベーステーブルを表現 クラスのインスタンスがテーブル上のレコードを表現する 疑問点:DBからモデルクラスを作成できる? オブジェクトの取得条件 色々ある(,=,like,pk,limitなど) キャッシュとクエリセット どのタイミングでクエリが走…

クロージャは関数を返す関数

>>> def make_adder(addend): ... def adder(augend): ... return augend + addend ... return adder ... # adder100,adder200二つ作っても互いに依存しない >>> adder100 = make_adder(100) >>> adder200 = make_adder(200) >>> adder100(100) 200 >>> adde…

はじめての Django アプリ作成、その 2

はじめての Django アプリ作成、その 2 — Django v1.0 documentation サイト管理者向けの一元化されたコンテンツ編集インタフェースの提供 admin サイト モデルの管理サイトが用意されている 項目の表示順序は変更できる 項目の表示を纏められる collapseで…

PyScripterでDjangoのデバッグ方法

ファイルエクスプローラでDjangoのmanage.pyがあるフォルダに行く フォルダを右クリックしてここに移動 models.py,view.pyなどにブレークポイントを貼る 実行>コマンドラインパラメータにrunserver --noreloadを記入。 コマンドラインパラメータを使用するを…

はじめての Django アプリ作成、その 1

はじめての Django アプリ作成、その 1 — Django v1.0 documentation startprojectの生成物 役割 説明文 __init__.py このディレクトリがPythonパッケージであることを知らせるための空ファイル manage.py Django プロジェクトに対する様々な操作を行うため…

Django勉強

今のところPython3には対応してないのかな。 いつ対応されるのかもわからなかった。2年ほど前に少し見たことあるけど、仕事が始まって全然余裕がなかった。とりあえずPython2.6とかで動かしてみるか。あのu''みたいな表現面倒なんだよな。 結局まだ3系は早い…

はじめての Django アプリ作成、その 1 — Django v1.0 documentation

プロジェクト作成 コードを置きたい場所にcdして、django-admin.py startproject mysiteを実行 startprojectの生成物 役割 説明文 __init__.py このディレクトリがPythonパッケージであることを知らせるための空ファイル manage.py Django プロジェクトに対…

doctestとは

モジュールドキュメント中の対話モード記述通りに動作するかの検証 回帰テストの実現 def add(a, b): """ 任意の2つのオブジェクトの合計を返す。 >>> add(1,2) 3 >>> add([1],[2]) [1, 2] >>> add([1],2) Traceback (most recent call last): TypeError: ca…

開発環境について

メジャーなのはこの二つみたいだけど、Eclipseの方は私のPCだと少し重い。動画見ながらだとちと心配。PyScripterはかなり軽いし、言語表示も英語・日本語・中国語なども出来るので良い。下の方にインタプリタが付いてるのでPythonShellも起動させる必要ない…

色々あるフレームワーク

もし使うならどれが良いのかな。 少し調べると Webフレームワークの編集 - Pythonのお勉強 Django GUIライブラリの編集 - Pythonのお勉強 wxPython って選択が普通なのかな。

ガーベージコレクションの過程をデバッグ

gc.set_debugをコールして、リークの起きるオブジェクトをリサイクルさず、gc.garbageリストに保持させる。 gc.collectでガーベージコレクションを強制実行。 それでも残っている物は開放不可オブジェクトとなる。 >>> def dump_garbage(): """ どんなゴミが…

文法表記法

よく文法表記に::=とか変なのが出てきていつも気になってたけど調べた事がなかった。 Pythonでもhttp://www.python.jp/doc/2.5/ref/notation.htmlによるとBNF 文法記法に手を加えたものとなっているので、この機会に勉強しよう。よく見ると正規表現に似てた …

例外のトラップと記録

トラップしたくないエラーがある時の記述例でもある。 >>> import io, traceback >>> def process_all_files(all_filenames,fatal_exceptions=(KeyboardInterrupt, MemoryError)): bad_filenames = {} for one_filename in all_filenames: try: # 宣言されて…

ループや条件式の実行を止める

下記のように飛ばしたい部分にFlase,0などを入れればその処理は飛ばされる。 なんか共通関数を書いて追加しても同じ。 if 0: # i < 1: doSomething() while 0: # j < k: j = fleep(j, k) Pythonでは__debug__変数があって最適化オプションを指定するとブロッ…

ガーベージコレクション

他の gc ルートオブジェクトから辿れるなら残し、辿れないなら開放 python gc 辿れない物を探し開放 pythonはいくつのオブジェクトが自分を見ているか参照カウントを持つ 参照カウントが0になったとき、オブジェクトは開放される 循環参照の場合、開放できな…

sqlite3を使う

python2.5以上はsqlite3がPythonに最初から入っている様子。 なので、sqliteをダウンロードする必要はなかった。 大体の役割 Connection Objects コネクション取得 カーソル取得 コミット ロールバック Cursor Objects 実行と結果の取得(実行方法と結果取得…

pydってなんだろ

sqlite3のモジュールを見てたら_sqlite3はpydにありますと言われたので なんだと思って調べたらPythonのWindows用拡張モジュールらしい。 Unixは.soになっているみたい。

教科書的な勉強って退屈

最初からクックブック見ていってるけど、今は使わないだろうこれ的な物が読み進めると多くなってきて流石に退屈になってきた。とりあえず好きな所だけ流し読みしてから何かフレームワーク的な物を触りながら勉強してみようかな。

sqlite3でフィールド名でデータを取得

フィールド名でデータにアクセスできるようにする。 >>> sql = 'SELECT name, ablob FROM justatest ORDER BY name' >>> cur = conn.cursor() >>> cur.execute(sql) # これだとtupleが返却されるので出来ない >>> for i in cur: type(i) <class 'tuple'> <class 'tuple'> <class 'tuple'> # ここでrow_fact</class></class></class>…

BLOBをSQLiteに保存する

どうも今使ってるモジュールにはsqlite.encodeってのが無いみたい。SQLite and Python typesにBLOBはBufferって書いてるから直接Byte形を対応させれば良いのかな? とりあえず出来てるみたいだけど。 SQLite type Python type NULL None INTEGER :class`int`…

属性の設定を制限

どうもここら辺の知識がないので理解できてないっぽい。 http://www.python.jp/doc/release/ref/datamodel.html こっちも見て勉強しとこう。 def no_new_attributes(wrapped_setattr): """ 新しい属性を追加しようとするとエラーを吐くが、 既存の属性に新し…

メタクラスとは

メタクラスとは - Weblio辞書

定数を定義する

pythonの定数定義は思っていたよりもメンドクサイ。 constのクラスがデフォルトでは用意されていない? なので__setattr__,__delattr__に制約を定義したクラスをモジュールとして組み込む実装がCookbookに紹介されている。不変オブジェクトだと問題ないが、…

IDLE PythonShell

こんなのあったんだ。全くつかってなかったw 今度からはこっちを使おう。 FAQ - Pythonのお勉強

スーパークラスの呼び出し

単純な振る舞いはまったく同じなのだけど、多重継承とかする場合には ②の方法が良いそうだ。なんでかは分からないけど、そっちで覚えたほうが良いらしい。 >>> class OneMore(Behave): # ①委譲を用いる ... def repeat(self,N): Behave.repeat(self,N+1) ...…

ポリモーフィズム、継承

Pythonだとポリモーフィズムの為にJavaのように継承、IFなどを使わなくて良いそうだ。 クラスの中に同じメソッドがあれば良いらしい。 そういえばPythonって型の配列って無いんだっけ。だからそういう事できるのかな。Pythonって継承はあるみたいだけど、IF…

クラスの特殊メソッド

__から始まっている関数は特殊メソッドらしく、これらをクラスに定義する事で インスタンスに値、リスト、ディクショナリなどとの互換性を持たせられる。らしい。特殊メソッド名 - Dive Into Python 3 日本語版 http://www.python.jp/doc/release/ref/specia…

クラスについて

クラスの関数には全てselfの引数定義が必要。 でも、selfは使うときに指定する必要はないらしい、Pythonが勝手に割り当てるみたい。 >>> class Behave(object): ... def __init__(self, name): ... self.name = name ... def once(self): ... print("Hello,"…