pyramid_starter_seed 是如何工作的

请注意,如果要将 Pyramid 应用程序与 Yeoman workflow 集成,可以选择不同的策略。所以 Pyramid 的启动方式只是一种可能的实现。

.ini configurations

Production vs development .ini configurations.

生产:

1[app:main]
2use = egg:pyramid_starter_seed
3
4PRODUCTION = true
5minify = dist

发展:

1[app:main]
2use = egg:pyramid_starter_seed
3
4PRODUCTION = false
5minify = app

查看可调用

根据生产与开发设置,视图可调用获得不同的渲染器:

1from pyramid.view import view_config
2
3@view_config(route_name='home', renderer='webapp/%s/index.html')
4def my_view(request):
5    return {'project': 'pyramid_starter_seed'}

Since there is no .html renderer, pyramid_starter_seed register a custom Pyramid renderer based on ZPT/Chameleon. 见 .html renderer

模板

CSS和JavaScript

 1<tal:production tal:condition="production">
 2    <script src="${request.static_url('pyramid_starter_seed:webapp/%s/scripts/plugins.js' % minify)}">
 3    </script>
 4</tal:production>
 5<tal:not_production tal:condition="not:production">
 6    <script src="${request.static_url('pyramid_starter_seed:webapp/%s/bower_components/bootstrap/js/alert.js' % minify)}">
 7    </script>
 8    <script src="${request.static_url('pyramid_starter_seed:webapp/%s/bower_components/bootstrap/js/dropdown.js' % minify)}">
 9    </script>
10</tal:not_production>
11<!-- build:js scripts/plugins.js -->
12<tal:comment replace="nothing">
13    <!-- DO NOT REMOVE this block (minifier) -->
14    <script src="./bower_components/bootstrap/js/alert.js"></script>
15    <script src="./bower_components/bootstrap/js/dropdown.js"></script>
16</tal:comment>
17<!-- endbuild -->

Note: the above verbose syntax could be avoided hacking with the grunt-bridge task. 见 grunt-bridge .

图像

<img class="logo img-responsive"
     src="${request.static_url('pyramid_starter_seed:webapp/%s/images/pyramid.png' % minify)}"
     alt="pyramid web framework" />

How to fork pyramid_starter_seed

取Pyramid种子,个性化,然后克隆它!

Pyramid 启动种子可以提取,个性化和释放与另一个名字。因此,其他开发人员可以引导、构建、发布和分发自己的入门模板,而无需编写新的包模板生成器。例如,您可以创建一个基于sqlachemy、zodb nosql或由一个JavaScript框架(如angularJS等)提供支持的更加固定的starter seed。

克隆方法应该加快基于Pyramid的新的、更进化的包的创建过程,也应该加快那些不热衷于编写自己的可重用脚手架模板的人。

因此,如果您想要发布基于 pyramid_starter_seed 的自定义模板,您必须使用以下语法调用名为 pyramid_starter_seed_clone 的控制台脚本(显然,您必须在 Pyramid pyramid_starter_seed 的根目录之外调用此命令):

$ YOUR_VIRTUALENV_PYTHON_PATH/bin/pyramid_starter_seed_clone new_template

因此,您将得到一个完美的重命名克隆新模板。

克隆控制台脚本在某些情况下可能不起作用,只在您选择包含保留字的新包名称或插件依赖项的名称时起作用,但手动修复或改进控制台脚本应该非常容易。但是,如果您提供测试,那么您可以立即检查克隆过程中是否发生了问题并进行修复。

How pyramid_starter_seed works under the hood

关于原文(第3部分)的更多详细说明: