web-dev-qa-db-ja.com

Djangoで静的HTMLファイルを応答として返す方法

純粋なHTMLコードおよび/またはHTML + JavaScript + CSSを使用してWebサイトを表示する方法を理解していません。

Hello Worldと書かれているHTMLファイルをロードしようとしました。

私はDjangoも使用してそれを行うことができますが、後でCSS + JavaScript + HTMLで自分のWebサイトを表示したいと思います。

ビューファイルでこのコードを実行します。

# Create your views here.
from Django.http import HttpResponse
from Django.template import Context, loader

def index(request):
    template = loader.get_template("app/index.html")
    return HttpResponse(template.render)

ただし、Webサイトに表示されるのは次のとおりです。

>

20
jjuser19jj

そこでrenderメソッドを呼び出していませんか?

比較する:

template.render

template.render()
16
ustun

ファイルがDjangoテンプレートではなく、プレーンHTMLファイルである場合、これが最も簡単な方法です。

from Django.shortcuts import render_to_response

def index (request):
    return render_to_response('app/index.html')
16

CSSファイルとJSファイルが静的な場合、Django=を使用してそれらを提供しないでください。または 静的ファイルとして提供

動的なコンテンツを持たない固定ファイルだけであれば、HTMLでも同じことができます。 汎用ビューTemplateView とともに使用して、このような行をurls.py

    url(r'^path/to/url', TemplateView.as_view(template_name='index.html')),
11
Facundo Casco

HttpResponseを使用すると、データのみを送信できます。htmlファイルを使用する場合は、renderまたはrender_to_response次の方法で...

from Django.shortcuts import render

def index(request):    
    return render(request, 'app/index.html')

または

from Django.shortcuts import render_to_response

def index (request):
    return render_to_response('app/index.html')
8
Mayur Sable
from Django.http import HttpResponse

from Django.template import loader

def index(request):

    template=loader.get_template('app/index.html')

    return HttpResponse(template)
0
amigana _34

まず、テンプレートの設定を行う必要があります。

rootdirectoryに「templates」フォルダーを作成します。ここで、manage.pyはプロジェクトの作成後に配置されます。次に、settings.pyに移動し、TEMPLATESセクションでテンプレートフォルダーのディレクトリを入力します。プロジェクトを友人に送信すると、友人はそれを実行できないため、ハードコーディングはお勧めしません。次のようになります。

TEMPLATES = [
 {
        'BACKEND': 'Django.template.backends.Django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,"templates")],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'Django.template.context_processors.debug',
                'Django.template.context_processors.request',
                'Django.contrib.auth.context_processors.auth',
                'Django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

home.htmlabout.htmlがテンプレートフォルダーにあると仮定します:

rls.py

from Django.contrib import admin
from Django.urls import path
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('about/',views.aboutview),
    path('',views.homeview),
]

views.py

from Django.http import HttpResponse
from Django.shortcuts import render

def aboutview(request):
  return render(request,"home.html")
def homeview(request):
  return render(request,"about.html")
0
Yilmaz