django的一个基于模板的类似flatpage的应用程序。
django-roughpages的Python项目详细描述
基于flatpages类应用程序的模板。 与django的flatpages应用不同,django roufpages呈现的模板文件 根据访问的URL确定。 当您想要呈现简单的静态页面时,它是非常组合的。 您不需要再为这种类型准备urls.py或views.py。 简单静态页面。
django roughpages使用访问的 当django引发Http404异常时的url。 视图自动从^{tt5}中找到相应的模板文件$ 一个模板目录中的目录。 假设用户访问了http://localhost/foo/bar/hoge/。 如果没有用url修补的url模式,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添加到设置中的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并启动development server python manage.py syncdb; python manage.py runserver 8000
进入http://localhost:8000/foo/bar/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 Anonymous”
访问http://localhost:8000/admin/并以管理员用户身份登录。
访问http://localhost:8000/foo/bar/piyo/您将看到 “这是Piyo认证的”
注意
URL最后一部分中的任何点('.')都被替换为下划线(''''),以防止安全风险。 见https://github.com/lambdalisue/django-roughpages/issues/3