Django:编辑main.html以引用静态网页

qyzbxkaa  于 2023-05-30  发布在  Go
关注(0)|答案(1)|浏览(151)

我正在学习Django,我对它还很陌生,所以我还不明白所有的部分是如何组合在一起的。
我已经成功地构建了教程网站(https://docs.djangoproject.com/en/4.2/intro/tutorial01/)上的民意调查应用程序和一个“Hello World!’app作为附加测试。我在根目录创建了一个主页,其中包含指向这两个应用程序的链接。代码如下。

<!DOCTYPE html>
<html lang="en">
<head>
  <title>B. Rabbit</title>
  <meta charset="UTF-8">
</head>
<body>

    <h3>Applications</h3>

    <ul>
        <li><p><a href="/polls">A Polls Application.</a></p></li>
        <li><p><a href="/hello">Hello World App.</a></p></li>
        <li><p></p><a href="/HWFolder/HWPage.htm">Hello World stand-alone page.</a></p></li>
    </ul>

</body>
</html>

我现在想在我的项目中创建一个带有静态网页(只是一个简单的html文件)的新文件夹,并添加一个指向此静态网页的主页面链接。也就是说,通过python manage.py startapp hello创建一个应用程序,我只想创建一个原始的.html文件,将其粘贴在某个文件夹中,然后指向这个。但我不知道该怎么做。
上面的第三个列表对象是我的尝试,但这产生了一个404 Page not found错误。
下面是网站的urls.py脚本。我能够通过遵循民意调查应用程序的语法来让Hello World应用程序工作,但我不知道如何编辑它以仅引用独立页面。

import os
from django.contrib import admin
from django.urls import include, path, re_path
from django.views.static import serve
from django.views.generic.base import TemplateView

# Up two folders to serve "site" content
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SITE_ROOT = os.path.join(BASE_DIR, 'site')

urlpatterns = [
    path('admin/', admin.site.urls),
    path('polls/', include('polls.urls')),
    path('hello/', include('hello.urls')),
]

有人能告诉我需要编辑什么脚本,或者我如何调整网站的urls.py来引用一个独立的页面,比如说/HWFolder文件夹中的HWPage.htm

yqlxgs2m

yqlxgs2m1#

要在Django中添加一个链接到一个独立的HTML页面,而不需要创建一个单独的应用程序,你可以按照以下步骤操作:
1.在Django项目的根目录中创建一个名为“static”的文件夹(与www.example.com文件处于同一级别manage.py)。
1.在“静态”文件夹中,创建另一个名为“HWFolder”的文件夹。
1.将HTML文件“HWPage.htm”放入“HWFolder”中。
1.在Django项目的urls.py文件中,在顶部添加以下导入:

from django.views.generic.base import TemplateView

1.修改urlpatterns列表以包含用于提供静态HTML文件的新路径:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('polls/', include('polls.urls')),
    path('hello/', include('hello.urls')),
    path('HWFolder/HWPage.htm', TemplateView.as_view(template_name='HWFolder/HWPage.htm')),
]

1.保存更改并运行Django开发服务器。
现在,当你访问URL /HWFolder/HWPage.htm时,Django将从静态文件夹中提供“HWPage.htm”文件。
确保你的Django项目的settings.py文件包含以下配置来提供静态文件:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

这允许Django从“static”文件夹中查找和提供静态文件。
请记住重新启动Django开发服务器以使更改生效。

相关问题