PasteScriptベースのプロジェクトテンプレート

プロジェクト数の増加に伴い、新しいアプリケーション用のフレームワークの作成を自動化するという問題が発生しました。 最近まで、準備されたテンプレートプロジェクトをコピーし、プロジェクトのさまざまな場所でさまざまな設定を変更して、新しいプロジェクトを作成しました。 もちろん、これは多くの時間を殺しました。



この問題を解決する試みは、 Python Pasteというプロジェクトにつながりました。 一般的に、これはWebアプリケーションを作成するためのユーティリティのセットです。たとえば、独自のフレームワークを作成できます( Pylonsで使用します)。 Pythonの貼り付けには、Webユーティリティに加えて、貼り付けスクリプトモジュールも含まれています。このモジュールを使用して、スタブテンプレートを作成し、それに基づいてプロジェクトを生成できます。



どのように機能しますか?





Djangoのプロジェクト用のシンプルなテンプレートを作成する



PasteScript pip install PasteScript



をインストールします



およそ次のプロジェクト構造を作成します。







次に、テンプレートの場所とそれらの設定を決定します。

setuptools import setup から 、find_packages



セットアップ

name = 'paster-templates'

バージョン= "0.1"

パッケージ= find_packages

install_requires = [

'setuptools'

'PasteScript'

「チーター」

]

include_package_data = True

zip_safe = False

#ここでパターンを説明します

entry_points = "" "

[paste.paster_create_template]

simple = templates.pastertemplates:SimpleTemplate

「」「



simpleはテンプレートの名前で、SimpleTemplateは設定を持つクラスです。



SimpleTemplateクラスで、テンプレート自体を構成し、ファイル、簡単な説明、およびユーザーを入力するように要求する「データベース名」パラメーターを使用してディレクトリを指定します。

ペーストからスクリプトテンプレート インポートテンプレート

ペーストからスクリプトテンプレート インポート変数



クラス SimpleTemplate Template

_template_dir = 'simple'

要約= 「単純なプロジェクト」

use_cheetah = True



vars = [

var 'database'

「データベース名」。

デフォルト= "test_db"

]


テンプレート/に移動し、テンプレートとなる新しいdjangoプロジェクトdjango-admin.py startproject simple



を生成します。



テンプレートファイルの構成に進みます。 生成時に指定されたパラメーターは、ファイル名に_tmplを追加した後、テンプレートファイル内で使用できます。 これらの変数の形式は$(property_name)



で、テンプレートエンジンを通過するディレクトリの名前は+property_name+



です。 たとえば、settings.py_tmplファイルの一部:

...

#プロジェクト名-$(プロジェクト)

データベース= {

'default'{

'ENGINE''django.db.backends.sqlite3'

「名前」「$(データベース)」

}

}

...


また、テンプレートファイルに関する注意事項:



おわりに



以上です。 python setup.py install



テンプレートを使用してパッケージをpython setup.py install



する



paster create --list-templates



して、システム内のテンプレートのリストを確認します(理解する限り、entry_pointsで説明されたテンプレートプラグインのeggのシステムにインストールされたスキャンを使用してテンプレートが検索されます)。



paster create --template=simple SimpleProject



使用して、単純なテンプレートに基づいて新しいプロジェクトを作成します。



すべての機会にテンプレートを作成することは残っています。



GitHubプロジェクトのソース



参照:




All Articles