程序人生
django静态页面信息发布
作者:邵波涛    时间:2016-08-21 浏览量:296

1、在settings.py中INSTALLED_APPS下面增加模块引用,flatpages依赖site

'django.contrib.sites',
'django.contrib.flatpages',

在settings.py中增加SITE_ID=1,也可以等于其它数字

执行 python manage.py migrate 建表

2、在MIDDLEWARE_CLASSES中最后一行增加

'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',

这种不需要配置url映射,当然要配置也有多种办法

例如全部匹配的正则方法

from django.contrib.flatpages import views
urlpatterns += [
    url(r'^(?P.*/)$', views.flatpage),
]

每个页面单独匹配的方法

from django.contrib.flatpages import views
urlpatterns = [
    url(r'^about-us/$', views.flatpage, {'url': '/about-us/'}, name='about'),
    url(r'^license/$', views.flatpage, {'url': '/license/'}, name='license'),
]

3、flatpage模板路径不设置时默认为 flatpages/default.html(静态文件目录下)

django经常找不到该文件

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

4、其它高级用法

获取 flatpages 实例列表

{% load flatpages %} {% get_flatpages as flatpages %}

获取当前用户能打开的 flatpages 实例列表

{% load flatpages %} {% get_flatpages for request.user as about_pages %}

获取链接以 /about/ 为开头的 flatpages 实例列表

{% load flatpages %} {% get_flatpages '/about/' as about_pages %}

 

上面两种也可以组合使用

{% load flatpages %} {% get_flatpages '/about/' for someuser as about_pages %}

 

生成 sitemaps.xml

from django.conf.urls import url from django.contrib.flatpages.sitemaps import FlatPageSitemap from django.contrib.sitemaps.views import sitemap
  
urlpatterns = [ # ... # the sitemap url(r'^sitemap\.xml$', sitemap,
        {'sitemaps': {'flatpages': FlatPageSitemap}},
        name='django.contrib.sitemaps.views.sitemap'),
]

容易踩的坑

最好把 settings.py 里的 APPEND_SLASH 设置为 Ture , 这样不管是/about-us 还是 /about-us/ 都可以访问到。


发言请留称呼=>
本文留言
共有 0 条留言
扫一扫,手机浏览网站
友情链接
申请链接