Django 笔记之 Flatpages 静态页面

通过后台接口管理静态页面,不想单独写一个app。

安装

app:
django.contrib.sites
django.contrib.flatpages

url:
urlpatterns = [path('pages/', include('django.contrib.flatpages.urls')),]

中间件:
django.contrib.flatpages.middleware.FlatpageFallbackMiddleware

运行:
manage.py migrate

创建了  django_flatpage/django_flatpage_sites 两张表

配置

url 配置一般配置

urlpatterns += [
    path('about-us/', views.flatpage, {'url': '/about-us/'}, name='about'),
    path('license/', views.flatpage, {'url': '/license/'}, name='license'),]

之前写单页模板也要写视图,这样就不用了

增删改

通过 admin
通过 Python API

静态页面模板

在templates 文件夹下,创建 flatpages/default.html

{{ flatpage.title }}{{ flatpage.content }}

这个模板只有一个上下文 flatpage. {{ flatpage.title }} 和 {{ flatpage.content }} 可以直接在后台写入原生html

获取所有的静态页面对象

{% load flatpages %}
{% get_flatpages as flatpages %}
<ul>
    {% for page in flatpages %}
        <li><a href="{{ page.url }}">{{ page.title }}</a></li>
    {% endfor %}
</ul>

只给注册用户显示
{% get_flatpages for someuser as about_pages %}

根据 url 获取
{% get_flatpages '/about/' as about_pages %}
{% get_flatpages '/about/' for someuser as about_pages %}

你可能感兴趣的:(Django笔记)