0

pyamfを介して時々データにアクセスするフラッシュアプ​​リを提供する django ベースのサイトを作成しています。django フレームワークのコンテキストでフラッシュを簡単にテストできるようにする必要があります。つまり、すべてのログイン Cookie と利用可能なすべてのものを使用して、pyamf 呼び出しを行うときにすべてのユーザー コンテキストがそこにあるようにする必要があります。そして、swf とラッパー html の両方を適切な方法でテストおよびリリースできる必要があります。でも:

  1. flex の html テンプレートは既にテンプレートであるため、django 用のテンプレート コードをそこに入れると、flashapp.html が作成される前に削り取られます。
  2. html と swf は自動的に同じディレクトリにリリースされますが、swf は django によって提供されるべきではなく、html は django の制御下にある領域にある必要があるため、それらを別のディレクトリに移動する必要があります。

これにより、一見すると、次のものが必要であると私は信じるようになります。

  1. html ファイルと swf ファイルを別の場所にリリースする方法。(これを行う方法がわかりません。)
  2. django の別の場所からそれらを含めることができるように、html をスタブ (html/body タグなし) としてリリースする方法。(index.template.html から不要なものを取り除くだけだと思いますか?)
  3. 次に、flex をポイントして、swf を参照する生成された flashapp.html を含む Django サイトに移動すると、すべてが機能するはずです。(その代替htmlを実行/デバッグ設定にフィードすることで、私は推測します。)

だから私の質問は次のようになります:

  1. 上記はこれを行うための最良の方法ですか、それとも正しい方向ですか?
  2. もしそうなら、どうすれば html と swf を別のディレクトリにリリースできますか? (デバッグ モードとリリース モードの場合、2 つの異なる方法がある場合。)
  3. そうでない場合、何が適切ですか?

また、このトピックに関するその他の一般的なアドバイスがあれば、お気軽に共有してください。:-)

4

1 に答える 1

1

最後にこれを自分で理解しました。これdjango get-parametersの組み合わせが機能します。一般的なポイント:

  1. 既存のマクロを次のようにカスタマイズする方法がないため、心配することなく入れたり入れ{% tags %}たりできます。{{ variables }}index.template.html${title}
  2. プロジェクトのディレクトリに andを作成するfoo.template.htmlと、リリース ビルドでは前者がオーバーライドされ、デバッグ ビルドでは後者がオーバーライドされます (ただし、結果は foo.html ではなく foo-debug.html になることに注意してください)。foo-debug.template.htmlhtml-templateindex.template.html
  3. パラメータで SWF の名前を django に渡し、ディレクトリに入力することができます。

foo-debug.template.html

<object ...
  <param name="movie" value="{{ bin_debug_url }}/${swf}.swf" ...

djangoflash.html

{% block content %}
  {% include flash_template %}
{% endblock %}

ビュー.py

def djangoflashview( request, **kwargs ):
  if not kwargs.has_key('extra_context'):
    kwargs['extra_context'] = {}
  if request.GET.has_key('name'):
    debug = "-debug" if request.GET.has_key('debug') else ""
    bin_debug_dir = '/dir-to-bin-debug/'
    bin_debug_url = 'url-to-bin-debug'
    name = bin_debug_dir + request.GET['name'] + debug + '.html'
    kwargs['extra_context']['flash_template'] = name
    kwargs['extra_context']['bin_debug_url' ] = bin_debug_url
  return direct_to_template( request, **kwargs ) 

urls.py

url( r'^djangoflash/', 'views.djangoflashview', 
     { 'template': 'djangoflash.html' }

foo.mxml の run-debug ターゲット:

/url-to-django/djangoflash/?name=foo

foo.mxml をデバッグするときは、次のようにフレックスします。

  1. &debug=trueURLに追加します
  2. ブラウザを起動して/url-to-djangoflash/djangoflash/?name=foo&debug=true
  3. どちらが選ばdjangoflash/れるかurls.py
  4. にリクエストをdjangoflashview渡し{'name':'foo','debug':'true'}ますrequest.GETviews.py
  5. 場所の名前と場所を把握し、それをコンテキスト変数foo-debug.htmlに渡しますflash_template
  6. そしてbin_debug_urlコンテキスト変数へのswfのURL
  7. そして直接テンプレートをロードしますdjangoflash.html
  8. には、コンテキスト変数を使用したフラッシュdjangoflash.htmlのラッパーが含まれていますfoo-debug.htmlflash_template
  9. 次に、コンテキスト変数を埋めて、bin_debug_urlコンパイルしたばかりのものを foo.swf 参照が正しく指すようにします

うわー。:-P

于 2010-08-20T19:29:50.817 に答える