0

web2pyの外部で、いくつかのグルオン派生コンポーネント (html ヘルパー)のコーディングを試みたいと考えていますweb2pyweb2pyこのようにして、コマンド ラインでコンポーネントをテストし、完全なアプリケーション スタックと統合する前に分析できる単純な 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: この質問で紹介されています)

4

1 に答える 1