ホームページ > バックエンド開発 > Python チュートリアル > Python Web フレームワーク Pylons での MongoDB の使用例

Python Web フレームワーク Pylons での MongoDB の使用例

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-16 08:46:07
オリジナル
1164 人が閲覧しました

長い開発期間を経て、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 Session

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 で初期化します:

コードをコピー コードは次のとおりです:

from ..model import init_model
from ming.datastore import DataStore

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 インポートエスケープ'])

# mongodb データベース エンジンをセットアップします

init_model(DataStore(config['database.uri']))

# ここに設定オプションがあります (注: すべての設定オプションは上書きされます

# 任意の Pylons 設定オプション)

構成を返す


最後に、developer.ini に MongoDB 構成項目を追加します。

コードをコピー コードは次のとおりです:
[app:main]
database.uri = mongodb:/ /localhost: 27017/test

プログラムのインストール中に一部のデータを初期化する必要がある場合は、それを PROJECT/websetup.py に追加できます

コードをコピー コードは次のとおりです:
"""wukong アプリケーションのセットアップ"""
インポート ログ
pylons.test をインポート

from .config.environment import load_environment

from . import model

log =logging.getLogger(__name__)

def setup_app(command, conf, vars):

"""wukong をセットアップするコマンドをここに配置します"""
# アプリがテスト環境でロードされた場合は、アプリをリロードしないでください
そうでない場合は、pylons.test.pylonsapp:
load_environment(conf.global_conf, conf.local_conf)

log.info("デモ データを追加しています。")

page = model.Page(title='demo', content='これはデモ用です。')
model.session.flush()
log.info("セットアップに成功しました。")

ここでは、MongoDB に接続し、単純な ORM を実行するために Ming ライブラリが使用されています。 Ming ライブラリは、PyMongo の ORM ラッパー ライブラリです。これは、SourceForge が TurboGears と MongoDB を使用してサイトをリファクタリングした副産物です。 SQLAlchemy ORM と少し似た働きをします。上記の例では、Ming を MongoKit または他の MongoDB ORM ライブラリに置き換えたり、PyMongo を直接使用したりすることもできます。

MongoDB が普及しそうな予感がします。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
Mac での mongodb の構成エラー
から 1970-01-01 08:00:00
0
0
0
symfony2 mongodb の使用
から 1970-01-01 08:00:00
0
0
0
mongodbのパラメータの理解
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート