美文网首页
Django using flatpages

Django using flatpages

作者: Dumplingsrush | 来源:发表于2017-11-26 22:15 被阅读0次

    通过使用FlatPage添加page ,例如 about me ,about the web,这些页面都是可通过django.admin管理界面编辑的,并且不需要重新创建一个新的app项目
    Two reference courses:
    http://me.iblogc.com/2015/09/08/django%E5%86%85%E7%BD%AE%E7%9A%84flatpages%E5%BA%94%E7%94%A8/

    https://simpleisbetterthancomplex.com/tutorial/2016/10/04/how-to-use-django-flatpages-app.html

    注意:

    • 配置URL时,应在项目根目录中的urls.py中配置
    • 如果没有设置SITE_ID的话记得要设置,否则django会找不到匹配的页面

    我使用的url配置是

    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'',include('blog.urls')),
        url(r'',include('comments.urls')),
        url(r'^about/$', views.flatpage,{'url':'/about/'},name='about'),
    ]
    

    使用了hardcoded url,所以在admin设置flatpage时,记得把url一项设置为/about/,否则django将无法找到对应的页面。
    然后在默认的templates/flatpages/default.html中导入相关title,content等,上面的参考教程已经讲得非常详细了。
    由于要实现markdown管理about页面功能,我还通过自定义标签,定义了一个filter

    ###blogproject/blog/templatetags
    import markdown
    register=template.Library()
    @register.filter(name='mdfilter')
    def mdfilter(value):
        value=markdown.markdown(
        value,
        extensions=[
            'markdown.extensions.extra',
            'markdown.extensions.codehilite',
            'markdown.extensions.toc',
        ])
        return value    
    

    然后在模版中添加相关内容

    <div>
    {{page.content|mdfilter|safe}}
    </div>
    

    注意在filter最后添加上safe以防止Django自动转义html,功能就实现了

    相关文章

      网友评论

          本文标题:Django using flatpages

          本文链接:https://www.haomeiwen.com/subject/qdzkbxtx.html