web2py
の外部で、いくつかのグルオン派生コンポーネント (html ヘルパー)のコーディングを試みたいと考えていますweb2py
。web2py
このようにして、コマンド ラインでコンポーネントをテストし、完全なアプリケーション スタックと統合する前に分析できる単純な html ファイルを生成できます。これにより、他の問題 (再デプロイ、データベースなど) を気にすることなく、コンポーネントの HTML の微調整に集中できるため、開発サイクルがスピードアップします。迅速かつ簡単:gluon.html
ヘルパーを使用して web2py コンポーネントを準備し、生成された HTML が適切に見えるかどうかを確認し、それを 内から使用しますweb2py
。
テストはおおむね成功しています。私はただしなければなりませんでした:
from gluon.html import A, TABLE, DIV, SPAN, THEAD, TR, TH, TBODY, URL, H1
def T(txt):
return txt
def my_simple_component(title):
return H1(T(title))
def test():
print my_simple_component('Hello')
これにより、期待される出力が生成されます。
$ python test_web2py_components.py
<h1>Hello</h1>
T
(私は自分のテストでは気にしません。また、URL
使用したいテストでは、偽のアプリケーション/コントローラー/関数を渡すだけです。)
私が見つけた唯一の問題は、gluon が PYTHONPATH にあるにもかかわらずweb2py
、インポートが機能するためにへのシンボリック リンクが必要なことです。gluon.html
ln -s /install_dir/web2py/gluon/ .
その余分なリンクを持たずに gluon コンポーネントをインポートする方法はありますか?
テスト段階では、コンポーネントが web2py アプリケーション ツリーの外にあることを考慮してください。
これは私が得るエラーです:
Traceback (most recent call last):
File "lib_test1.py", line 4, in <module>
from gluon.html import A, TABLE, DIV, SPAN, THEAD, TR, TH, TBODY, URL
File "/install_dir/web2py/gluon/__init__.py", line 15, in <module>
from globals import current
File "/install_dir/web2py/gluon/globals.py", line 24, in <module>
from serializers import json, custom_json
File "/install_dir/web2py/gluon/serializers.py", line 11, in <module>
from languages import lazyT
File "/install_dir/web2py/gluon/languages.py", line 264, in <module>
PLURAL_RULES = read_possible_plurals()
File "/install_dir/web2py/gluon/languages.py", line 250, in read_possible_plurals
for pname in os.listdir(pdir):
OSError: [Errno 2] No such file or directory: '/current_dir/gluon/contrib/rules'
(考慮しないinstall_dir
およびcurrent_dir
: この質問で紹介されています)