長い開発期間を経て、Pylons はついにバージョン 1.0 をリリースしました。正式な製品開発にとって、バージョン 1.0 は非常に重要であり、これは Pylons の API がようやく安定したことを示しています。
Pylons は Rails の模倣として生まれましたが、純粋な Python Web フレームワークとして、強力なカスタマイズ性という特徴があります。フレームワークの各層は車輪の再発明を行うのではなく、既存の Python ライブラリを可能な限り統合します。 MVC のモデル層では、Pylons はデフォルトで SQLAlchemy をサポートします。今は NoSQL が注目されており、MongoDB も注目されています。 Pylons で MongoDB を使用するのも簡単です。以下に簡単な例を示します。
PROJECT/model/__init__.py で MongoDB 初期化関数とマッピング オブジェクトを定義します。
from ming import schema
from ming.orm import MappedClass
from ming.orm import FieldProperty、ForeignIdProperty、RelationProperty
from ming.orm import ThreadLocalORMSession
セッション = なし
def init_single_model(model_class):
model_class.__mongometa__.session = session
class Page(MappedClass):
class __mongometa__:
session = session
name = 'pages'
_id = FieldProperty(schema.ObjectId)
title = FieldProperty(str)
content = FieldProperty(str)
def init_model(engine):
グローバルセッション
session = ThreadLocalORMSession(doc_session=Session(engine))
init_single_model(Page)
MappedClass.compile_all()
PROJECT/config/environment.py で初期化します:
defload_environment(global_conf, app_conf):
...
# デフォルトの自動エスケープを使用して Mako TemplateLookup を作成します
config['pylons.app_globals'].mako_lookup = TemplateLookup(
directory=paths['templates'],
error_handler=handle_mako_error,
module_directory=os.path.join(app_conf['templates']),
module_directory=os.path.join(app_conf['c ache_dir']、'テンプレート')、webhelpers.html インポートエスケープ'])
init_model(DataStore(config['database.uri']))
# 任意の Pylons 設定オプション)
from .config.environment import load_environment
from . import model
def setup_app(command, conf, vars):
"""wukong をセットアップするコマンドをここに配置します"""
# アプリがテスト環境でロードされた場合は、アプリをリロードしないでください
そうでない場合は、pylons.test.pylonsapp:
load_environment(conf.global_conf, conf.local_conf)
page = model.Page(title='demo', content='これはデモ用です。')
model.session.flush()
log.info("セットアップに成功しました。")
MongoDB が普及しそうな予感がします。