基于模板的Django平坦页面应用程序。
项目描述
一个基于模板的类似平坦页面的应用程序。与django的平坦页面应用程序不同,django-roughpages渲染一个由访问URL决定的模板文件。当您想要渲染简单的静态页面时,它非常方便。您不再需要为这种简单的静态页面准备urls.py或views.py。
当Django引发Http404异常时,django-roughpages会调用roughpages.views.roughpage视图与访问的URL。该视图会自动从您的模板目录中的roughpages目录中找到相应的模板文件。假设用户访问了http://localhost/foo/bar/hoge/。如果没有与URL匹配的urls模式,django-roughpages将尝试找到相应的模板文件,如templates/roughpages/foo/bar/hoge.html。如果django-roughpages找到了相应的模板文件,它将渲染该模板并返回HttpResponse,否则它将重新引发Http404异常。
您可以复杂地选择相应的模板文件。django-roughpages通过后端系统确定文件名。默认后端是roughpages.backends.AuthTemplateFilenameBackend,它优先于hoge.anonymous.html或hoge.authenticated.html而不是hoge.html,这取决于访问用户的认证状态。因此,您可以简单地为认证用户准备页面,例如<something>.authenticated.html,为匿名用户准备页面,例如<something>.anonymous.html。请注意,包含'.'的文件名是不允许的,因此用户不能通过如/hoge.authenticated这样的URL访问hoge.authenticated.html,以防止无意中访问文件。
您可以通过创建自定义后端来控制后端行为。要创建自定义后端,您需要继承roughpages.backends.TemplateFilenameBackendBase并重写prepare_filenames(self, filename, request)方法。该方法接收原始文件名和HttpRequest实例,并必须返回一个文件名列表。django-roughpages然后将从列表的起始位置尝试加载模板文件,因此出现的顺序很重要。
文档
安装
使用pip如下
$ pip install django-roughpages
用法
配置
将roughpages添加到您的设置模块中的INSTALLED_APPS
INSTALLED_APPS = ( # ... 'roughpages', )
添加我们的额外后备中间件
Django >= 1.10
MIDDLEWARE = ( # ... 'roughpages.middleware.RoughpageFallbackMiddleware', )
Django < 1.10
MIDDLEWARE_CLASSES = ( # ... 'roughpages.middleware.RoughpageFallbackMiddleware', )
在您的模板目录之一中创建roughpages目录,该目录由settings.TEMPLATE_DIRS指定
快速教程
按照以下方式创建roughpages/foo/bar/hoge.html
<html> <body> This is Hoge </body> </html>
运行syncdb,并通过python manage.py syncdb; python manage.py runserver 8000启动开发服务器
访问http://localhost:8000/foo/bar/hoge/,您将看到“这是Hoge”
按照以下方式创建roughpages/foo/bar/piyo.anonymous.html
<html> <body> This is Piyo Anonymous </body> </html>
按照以下方式创建roughpages/foo/bar/piyo.authenticated.html
<html> <body> This is Piyo Authenticated </body> </html>
访问http://localhost:8000/foo/bar/piyo/,您将看到“这是Piyo 匿名”
访问http://localhost:8000/admin/并作为管理员用户登录。
访问http://localhost:8000/foo/bar/piyo/,您将看到“这是Piyo 认证”
项目详情
django-roughpages-1.0.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 755d69bd600d70708fb2cf729ae2a9f5a42cb13d93d72b362ffe55fa2af5965f |
|
MD5 | 1f6110cb937e41d4199275c4136a8d45 |
|
BLAKE2b-256 | 7b54a4eec005276a52df32a811d2d002f89e60d5d01929af807ff6b73e0dfe7e |