django的一个基于模板的类似flatpage的应用程序。

django-roughpages的Python项目详细描述


Build statusCode qualityCoverageRequirementsVersionStatusLicensePython versionsDjango versions

基于flatpages类应用程序的模板。 与django的flatpages应用不同,django roufpages呈现的模板文件 根据访问的URL确定。 当您想要呈现简单的静态页面时,它是非常组合的。 您不需要再为这种类型准备urls.pyviews.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.htmlhoge.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粗页然后尝试从 名单,因此出现的顺序是问题。

安装

使用pip方式:

$ pip install django-roughpages

用法

配置

  1. roughpages添加到设置中的INSTALLED_APPS中 模块

    INSTALLED_APPS=(# ...'roughpages',)
  2. 添加额外的备用中间件

    django>;=1.10

    MIDDLEWARE=(# ...'roughpages.middleware.RoughpageFallbackMiddleware',)

    django<;1.10

    MIDDLEWARE_CLASSES=(# ...'roughpages.middleware.RoughpageFallbackMiddleware',)
  3. 在一个模板目录中创建roughpages目录 用settings.TEMPLATE_DIRS

    指定

快速教程

  1. 创建roughpages/foo/bar/hoge.html,如下所示

    <html><body>
        This is Hoge
    </body></html>
  2. 运行syncdb并启动development server python manage.py syncdb; python manage.py runserver 8000

  3. 进入http://localhost:8000/foo/bar/hoge/你会看到“这是猪”

  4. 创建roughpages/foo/bar/piyo.anonymous.html,如下所示

    <html><body>
        This is Piyo Anonymous
    </body></html>
  5. 创建roughpages/foo/bar/piyo.authenticated.html,如下所示

    <html><body>
        This is Piyo Authenticated
    </body></html>
  6. 访问http://localhost:8000/foo/bar/piyo/您将看到 “我是Piyo Anonymous”

  7. 访问http://localhost:8000/admin/并以管理员用户身份登录。

  8. 访问http://localhost:8000/foo/bar/piyo/您将看到 “这是Piyo认证的”

注意

URL最后一部分中的任何点('.')都被替换为下划线(''''),以防止安全风险。 见https://github.com/lambdalisue/django-roughpages/issues/3

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java log4j找不到log4jtest。房产?   我在java线程“awteventque1”中获得异常。lang.NullPointerException   java为什么在使用完整路径从文件系统读取文件时出错?   java如何迭代所有注册表项?   java中的安卓 Opencv SVM未正确训练   多线程Java ThreadPoolExecutor关闭特定线程?   如何使用Java NIO CreateDirectory方法设置目录所有者组?   java NatTable混合了固定宽度的列和可调整大小的填充剩余空间   java如何删除特定网络,即使该网络是由安卓上的其他设备创建的?   java Guava toJavaUtil()不存在   java对许多常量使用枚举是有效的memorywise?   java是否可以使用坐标定位JButton?   从WSDL生成java代码导致异常   java如何在安卓中导出javadoc   爬行JAX中的java NoClassDefFoundError错误   java为片段中的文本视图设置区域设置   发送最后一条消息后发生Java RMI RemoteException