You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中添加静态HTML页面(如FAQ、关于我们页)

在Django中添加静态页面(FAQ/关于我们)的实现方案

当然没问题!在Django里添加FAQ、“关于我们”这类静态页面其实是非常常见的需求,而且实现方式多样,我给你整理了几种最实用的方案,你可以根据自己的场景选择:

方法1:自定义视图+模板(最灵活,推荐)

这种方式适合需要复用站点基础模板(比如导航、页脚),或者偶尔需要添加少量动态内容的场景:

  1. 创建模板文件
    在项目的templates目录下新建一个子目录(比如pages),然后创建faq.html和about.html。你可以直接写纯HTML,也可以继承项目的基础模板(比如base.html)来保持全站风格统一:

    <!-- templates/pages/about.html -->
    {% extends 'base.html' %}
    
    {% block content %}
    <h1>关于我们</h1>
    <p>这里是我们的团队介绍...</p>
    {% endblock %}
    
  2. 编写视图函数
    在任意app的views.py中(建议专门新建一个pages app来管理这类页面,更清晰),添加简单的视图:

    from django.shortcuts import render
    
    def faq(request):
        # 如需传递动态数据,可添加context字典
        context = {'page_title': '常见问题FAQ'}
        return render(request, 'pages/faq.html', context)
    
    def about(request):
        return render(request, 'pages/about.html')
    
  3. 配置URL路由
    在项目的urls.py或者app的urls.py中添加路由规则:

    from django.urls import path
    from .views import faq, about
    
    urlpatterns = [
        # 其他业务路由...
        path('faq/', faq, name='faq'),
        path('about/', about, name='about'),
    ]
    

方法2:使用Django通用视图(更简洁)

如果页面完全不需要处理动态逻辑,只是渲染静态模板,用Django内置的TemplateView可以省去写视图函数的步骤:

  1. 定义视图类
    在views.py中引入并定义通用视图:

    from django.views.generic.base import TemplateView
    
    class FAQView(TemplateView):
        template_name = 'pages/faq.html'
        # 如需传递静态上下文,可重写get_context_data方法
        def get_context_data(self, **kwargs):
            context = super().get_context_data(**kwargs)
            context['page_title'] = '常见问题FAQ'
            return context
    
    class AboutView(TemplateView):
        template_name = 'pages/about.html'
    
  2. 配置URL路由
    对应路由配置如下:

    from django.urls import path
    from .views import FAQView, AboutView
    
    urlpatterns = [
        # 其他路由...
        path('faq/', FAQView.as_view(), name='faq'),
        path('about/', AboutView.as_view(), name='about'),
    ]
    

方法3:直接托管纯静态HTML文件(适合已有现成静态页面)

如果你已经有完全写好的静态HTML文件,不需要使用Django模板引擎,可以直接让Django托管(注意:生产环境建议用Nginx、Apache等专业静态文件服务器托管,不要让Django处理):

  1. 存放静态文件
    在项目的static目录下新建html子目录,将faq.html、about.html放入其中。同时确保settings.py中已配置好静态文件相关参数:

    STATIC_URL = 'static/'
    STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
    STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
    
  2. 配置URL路由
    在urls.py中添加静态文件路由:

    from django.urls import path
    from django.views.static import serve
    from django.conf import settings
    import os
    
    urlpatterns = [
        # 其他路由...
        path('faq/', serve, {'path': 'html/faq.html', 'document_root': settings.STATIC_ROOT}),
        path('about/', serve, {'path': 'html/about.html', 'document_root': settings.STATIC_ROOT}),
    ]
    

小建议

如果站点有多个静态页面,建议把这类页面的路由单独放在pages/urls.py中,然后在项目根urls.py中通过include引入,让路由结构更清晰:

# 根urls.py
from django.urls import path, include

urlpatterns = [
    # 其他路由...
    path('pages/', include('pages.urls')),
]

内容的提问来源于stack exchange,提问作者RaoufM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:49:49