动态切换django项目的settings.side\u id

django-agilesites的Python项目详细描述


Django Agile站点(Django_Agilesites)

这为django提供了动态切换settings.side\u id的能力。 然后,您可以通过引用settings.site_文件夹,根据站点ID更改模板路径。

其工作方式首先是根据 request.get_host()(部分基于request.meta['http_host'])。一旦站点ID 建立,然后使用它动态查找任何模板路径文件夹结构 定义。

示例/设置

假设我们希望所有流量都转到//beta.foo.com以使用我们的新模板树 为新模板app_detail.html调用“beta”。此应用程序将允许您放置 要实现此目的,请在应用程序中使用以下模板文件夹结构:

app/
    templates/
        app/
            app_detail.html
            app_list.html
        beta/
            app_detail.html

我们需要引用这两个网站的问题-所以在网站应用程序假设如下。 站点ID:1域:foo.com 站点ID:2域:beta.foo.com

现在要使其工作,您需要执行以下操作:

  1. django_agilesites添加到设置中。已安装的应用程序

  2. 添加django_agilesites.loaders.AgileSiteAppDirectoriesFinder 到settings.template\u加载程序。我把它放在第一个

  3. django_agilesites.middleware.AgileSitesMiddleware'添加到 settings.middleware\u类

  4. 添加以下设置以引用文件夹beta。

    站点文件夹={ 2:'测试版', }

就这样。

现在,当您转到//beta.foo.com/app/detail时,您将使用beta树中的模板 你进入beta版的列表视图,它将引用父应用程序的列表.html。

注:

  1. 您不需要引用站点ID 1,因为该站点没有路径更改。

  2. 你不需要把每个网址。我们还通过使用 设置网站别名字典。这将迫使//beta.bar.com也使用beta模板。

    站点别名={ “beta.bar.com”:2, }

版本

  • 1.0.x django 1.8
  • 1.1.x django 1.9<;2

构建过程:

  1. 更新应用程序内部的__version_info__。承诺和推动。
  2. 用版本标记发布。git tag <version> -m "Release"; git push --tags
  3. 构建版本rm -rf dist build *egg-info; python setup.py sdist bdist_wheel
  4. 上传数据twine upload dist/*

玩得开心!

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

推荐PyPI第三方库


热门话题
java Rest DSL路由无法启动路由,因为同一端点不允许有多个使用者   jvm有没有像JConsole或VisualVM这样的工具可以告诉我“类、对象、引用变量在java中存储在哪里?”   java为什么我的列表中的所有元素看起来都一样?   java运行时。运行shell脚本的exec无法打开文件   JPopupMenu的JMenuItem的java热键   会话在Java中被覆盖   如何在java中去除字符串中的尖锐重音?   java Mockito监视一个接口,模拟它的默认方法,获取NullPointerException   javascript如何在jquery中禁用同一时间选择   将数组列表附加到现有CSV文件,但它会附加并清除存储在Java文件中的以前的数据   java从我的jar中访问pdf文件   java Sonar issue参数必须为非Null,但标记为可为Null   java Salesforce流式API:在网络故障之后和重新订阅之前获取事件   在Java 1.8.0_65上运行Play2.0应用程序时出现playframework错误   java为什么字母的ASCII由方法自动转换。toCharArray()?   java如何知道JDialog是否关闭?   java向服务器发送POST请求,服务器的响应为null,启动   java如何设置JTable中特定单元格的值?   ImagePlus中的java保存问题