web-dev-qa-db-ja.com

Djangoメインページの設定方法

アプリのメインページまたはインデックスページを設定したい。 MAIN_PAGEをsettings.pyに追加してからmain_pageビューを作成してmain_pageオブジェクトを返しましたが、機能しませんまた、urls.pyに次のような宣言を追加しようとしました

(r'^$', index),

ここで、indexはルート上のindex.htmlファイルの名前である必要があります(ただし、明らかに機能しません)

Django Webサイトにメインページを設定する最良の方法は何ですか?

ありがとう!

19
dana

静的ページを参照する場合(動的処理を行わない場合)、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つのルートにあると仮定します。)

13
mipadi

これを行うための新しい好ましい方法は、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/を配置することを選択したことに注意してください。

14
ryanjdillon

誰かが答えの更新されたバージョンを探している場合。

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')
1
Ahm.

一般的な direct_to_template ビュー機能:

# in your urls.py ...
...
url(r'^faq/$', 
    'Django.views.generic.simple.direct_to_template', 
    { 'template': 'faq.html' }, name='faq'),
...
1
miku