Djangoプラットフォームでテンプレートを開く方法

私はこのviews.pyとurls.pyを保存した同じディレクトリに保存されているhtmlファイル、つまりmap.htmlを開きたいと思います。 (djangoベースのプラットフォーム)

私はこのサンプルコードをviews.py(map.htmlをロードするため)に書きましたが、動作しません。

 from django.template import Template, Context,RequestContext 
 from django.http import HttpResponse
 import datetime

 def router_map(request):
     fp = open('./map.html')
     t = Template(fp.read())
     fp.close()
     html = t.render(Context({'router_map'}))
     return HttpResponse(html)

私のurls.pyは:

 from django.conf.urls.defaults import * 
 from umit.views import router_map

 urlpatterns = patterns('',
     (r'^index/$', router_map),
 )
2
手動で開く必要があると思われる理由を説明してください。
追加された 著者 Daniel Roseman,
settings.pyの TEMPLATE_DIRS にディレクトリを追加できませんか?テンプレートを手動で開く必要はありません。
追加された 著者 Some programmer dude,
それから私は尋ねなければならない、何が働いていないのですか?エラーが出ますか?テンプレートは適切にレンダリングされていませんか?何が起こるのですか?
追加された 著者 Some programmer dude,
Pythonコードを投稿するときは、インデントを保存するように注意してください。それ以上:常にそれを保存してください。
追加された 著者 vikingosegundo,
私はそれをしたくありません。私に教えてください。手動で行う方法
追加された 著者 cookieMonster,
私はDjangoで新しくなっています。あなたは私にそれを行うためのコードを教えてもらえますか、あるいはこのコードに何か問題がありますか?
追加された 著者 cookieMonster,

1 答え

問題は、あなたが './ map.html' のパスを使用していると思います。これは、Pythonが、プログラムのカレントディレクトリを見付け、ビューファイルと同じディレクトリではないことを意味します。

Djangoプロジェクトが/home/foo/myproject ディレクトリにあるとします。そのディレクトリに cd して python manager.py runserver を実行すると、アプリケーション内の現在のディレクトリ()は< code>/home/foo/myproject のようなものです。

これを修正する最も簡単な方法は、 open の呼び出しでファイルへのフルパスを使用することです。

fp = open('/home/foo/myproject/myapp/views/map.html')
1
追加された
@komal最後のエラーは、テンプレートに何か問題がある可能性があります。私はDjangoを仕事に使っていないし、何もテストできないので、あなたを助けることはできません。また、Djangoの標準的な場所にテンプレートを置くことを強くお勧めします。手動で開く必要はありません。
追加された 著者 Some programmer dude,
返信いただきありがとうございます。私はそれをしました。今、このエラーを示しています:レンダリング中にVariableDoesNotExistをキャッチ:u [set(['final'])]]のキー[
追加された 著者 cookieMonster,
あなたは私を助けてください...私にサンプルコードを与えてください。ちょうどhtmlファイルを埋め込むために、または私がlocalhost/indexを開いたときに、そのhtmlファイルを開きます
追加された 著者 cookieMonster,