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 Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本