Python on Pyramid 設定編

Pyramidプロジェクトを作成します。

今回の連載の目標は

・DBをつかう
・jinja2で動的ページを表示する

といったところなので、
簡単なSNS的なWebアプリケーションを作成します。

– プロジェクト用の仮想環境を作成

$ mkdir test_project
$ virtualenv test_project
$ cd test_project
$ source bin/activate
$ pip install pyramid

環境構築については詳しくはこちら

– プロジェクトを作成

DBを扱うためのモジュールをインストール

$ pip install py-postgresql

DBをSQLAlchemyで扱うので
Pyramidにあるalchemyというテンプレートを使用します。

SQLAlchemyの使い方については
また後日記事にします。
(→Python on Pyramid SQLAlchemy編)

$ pcreate -s alchemy project_name
$ cd project_name
$ python setup.py develop

ここまで大体セットです。

プロジェクトの設定ファイルを修正して、
作りたいアプリの環境に合わせます。

– DB設定

生成されたproject_nameディレクトリの
development.iniの設定を修正します。
デフォルトではsqliteになってます。

18行目

sqlalchemy.url = postgresql+pypostgresql://pyramid_user:password@localhost/project_db

postgresのDBを作成します。

せっかくの仮想環境なので
virtualenvを実行したディレクトリに作成します。

$ mkdir db
$ initdb --encoding=UTF8 --no-locale -D db

作成したらDBサーバを起動しておいてください。

$ pg_ctl -w start -D db

さっきdevelopment.iniで指定したpyramid_userとdbを作成しておきますです。

$ createuser -P pyramid_user
$ createdb --username pyramid_user project_db

ユーザさえ作れば大丈夫です。
動作確認用でログインしといてください。

$ psql -U pyramid_user -W project_db
project_db=#

ちなみにポスグレを使うのは
python
pyramid
postgres
で先頭のpが重なって気持ちがいいからです。やったね!

project_db=#\dt
No relations found.

はい、カラっぽですね。

Pyramidにはmodelの定義からDBのテーブルを作成する機能がありますので、
CREATE TABLEなどと書く必要はないです。

./project_name/project_name/models.py
がその定義になります。

$ initialize_project_name development.ini

とするとdevelopment.iniからDB設定をロードして
models.pyに定義してあるモデルのテーブルを自動で作成してくれます。

実行後にpostgresで\dtすると

public | models | table | pyramid_user

というテーブルができていることがわかります。

次回はテーブルの定義方法とDBの設計をやります。

コメントを残す

メールアドレスが公開されることはありません。