dav*_*ave 9 python pylons frameworks pyramid
我现在已经在Pylons开发了一段时间,并且最近了解到他们正在与另一个框架合并以创建金字塔.
我一直在查看示例代码以查看差异,这会引起一些混乱......
例如,控制器已被视图替换.不是一个大问题...但我觉得有趣的是没有这些目录.它只是一个文件:views.py.
这个新的MVC结构如何工作?我是否将所有操作都写入此文件?当我有类似命名的动作(例如多个索引)时,这可能会变得相当烦人:/
你能指点我一些关于如何使用这个框架的好教程/文档的方向吗?
Chr*_*ugh 26
由于各种与视图相关的配置方法(config.add_view,config.add_handler)要求您将点名称作为要用作视图或处理程序的类或函数传递,因此您可以根据需要排列代码.
例如,如果您的项目包名称是myproject并且希望在myproject名为"views" 的包中的Python子包中排列所有视图(请参阅http://docs.python.org/tutorial/modules.html#packages)而不是单个视图文件,您可能:
创建一个 views在mypackage包中目录.
移动现有的views.py文件到views名为的新目录
内的文件中blog.py.
在views名为的新目录中创建一个文件__init__.py(它可以为空,这只是告诉Python该views目录是一个包.
然后改变__init__.py你的myproject项目(不是在__init__.py您刚刚创建的views目录,一个在它的父目录)的类似:
config.add_handler('myhandler', '/my/handler', handler='mypackage.views.MyHandler')
至:
config.add_handler('myhandler', '/my/handler', handler='mypackage.views.blog.MyHandler')
然后,您可以继续将文件添加到views目录中,并通过作为handler=或传递的带点名称引用这些文件中的视图或处理程序类/函数view=.
这是一个应该非常直接的答案.当金字塔1.3尚未出现时,人们会问这个问题.所以忘了python处理程序,因为新的装饰器现在做得很好.
但刚刚开始:金字塔没有任何共同的结构.如果需要,您可以在一个文件中编写整个应用程序.换句话说,如果你喜欢塔架的结构,你就可以使用它.如果您更喜欢设置自己的结构,那就去吧.
如果您的网站不需要多个文件,那么......去吧!你真正需要的是它的工作原理.
我个人有这样的结构
- root
- __init__.py # all setup goes there
- security.py # where functions related to ACL and group_finder
- models.py or models/ # where all my models go
- views.py or views/ # where all my views go
- templates
- modelname
- all template related to this resource type
- scripts # where I put my scripts like backup etc
- lib # all utilities goes there
- subscribers # where all events are defined
Run Code Online (Sandbox Code Playgroud)
我的视图包有时可能会拆分到许多文件中,我按ResourceType对视图进行分组.
如果您碰巧使用上下文来匹配视图而不是路由.你可以用view_defaults和view_config做一些非常好的事情.
view_defaults为类设置一些默认值,并view_config使用view_defaultsif present 提供的默认值为defs设置更多配置.
| 归档时间: |
|
| 查看次数: |
3707 次 |
| 最近记录: |