アプリのメインページまたはインデックスページを設定したい。 MAIN_PAGEをsettings.pyに追加してからmain_pageビューを作成してmain_pageオブジェクトを返しましたが、機能しませんまた、urls.pyに次のような宣言を追加しようとしました
(r'^$', index),
ここで、indexはルート上のindex.htmlファイルの名前である必要があります(ただし、明らかに機能しません)
Django Webサイトにメインページを設定する最良の方法は何ですか?
ありがとう!
静的ページを参照する場合(動的処理を行わない場合)、direct_to_template
からDjango.views.generic.simple
ビュー関数を使用できます。あなたのURL設定:
from Django.views.generic.simple import direct_to_template
urlpatterns += patterns("",
(r"^$", direct_to_template, {"template": "index.html"})
)
(index.html
がテンプレートディレクトリの1つのルートにあると仮定します。)
これを行うための新しい好ましい方法は、TemplateView
クラスを使用することです。 direct_to_template
から移動する場合は、これを参照してください SO回答 。
メインのurls.py
ファイル:
from Django.conf.urls import url
from Django.contrib import admin
from Django.views.generic.base import TemplateView
urlpatterns = [
url(r'^admin/', admin.site.urls),
# the regex ^$ matches empty
url(r'^$', TemplateView.as_view(template_name='static_pages/index.html'),
name='home'),
]
index.html
ディレクトリ内の独自のディレクトリstatic_pages/
に静的ページlinketemplates/
を配置することを選択したことに注意してください。
誰かが答えの更新されたバージョンを探している場合。
from Django.urls import re_path
from . import views
urlpatterns = [
re_path(r'^$', views.index, name='index')
]
そしてあなたのviews.py
def index(req):
return render(req, 'myApp/index.html')
一般的な direct_to_template
ビュー機能:
# in your urls.py ...
...
url(r'^faq/$',
'Django.views.generic.simple.direct_to_template',
{ 'template': 'faq.html' }, name='faq'),
...