Pylons

来自Local Chinese Wikipedia
跳转到导航 跳转到搜索

脚本错误:没有“Infobox”这个模块。脚本错误:没有“Check for unknown parameters”这个模块。脚本错误:没有“check for clobbered parameters”这个模块。 Pylons计划是开发一组用Python书写的web应用技术的开源组织。最初这个计划只是一个叫做Pylons的单一的web框架,但是后来合并了repoze.bfg框架,并取了新名字Pyramid,Pylons计划现在由多个有关的web应用技术组成。

Pyramid[编辑]

脚本错误:没有“Infobox”这个模块。脚本错误:没有“Check for unknown parameters”这个模块。

Pyramid是用Python书写的开源web应用框架,它基于了WSGI。它是受到ZopePylonsDjango启发的极简主义的web框架[1]

Pyramid最初叫做“repoze.bfg”,它获得关注主要在于Zope[2]Plone社区,随着开放社会基金会的KARL计划从Plone迁移至BFG[3]。在2010年宣布了Pylons框架将于版本1.5转移到使用BFG作为基础[4]。作为将BFG包括入Pylons计划的结果,BFG被重命名为Pyramid[5]

特征[编辑]

Pyramid是极简主义的跨平台web框架。它不预定持久化方式,可以通过SQLAlchemy集成于SQL数据库或集成于Template:Le二者,还有其他NoSQL数据库比如CouchDB[1]

Pyramid允许开发者使用正则表达式定义映射到对象的路由。同样跟从框架Zope,Pyramid允许层级对象遍历,这里URL的每个部分都是包含其他对象的对象,这种方式类似于文件系统中的文件夹[6]

例子代码[编辑]

from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response

def hello_world(request):
    return Response('Hello World!')

if __name__ == '__main__':
    with Configurator() as config:
        config.add_route('hello', '/')
        config.add_view(hello_world, route_name='hello')
        app = config.make_wsgi_app()
    server = make_server('0.0.0.0', 6543, app)
    server.serve_forever()

Pylons框架[编辑]

脚本错误:没有“Infobox”这个模块。脚本错误:没有“Check for unknown parameters”这个模块。 Pylons是一个开放源代码Web应用框架,使用Python语言编写。它对WSGI标准进行了扩展应用,提升了重用性且将功能分割到独立的模块中。

Pylons类似于DjangoTurboGears。Pylons受Ruby on Rails影响很深:它的两个组件,Routes[7]和WebHelpers[8]是Rails特性的Python实现。

安装和依赖[编辑]

Pylons的官方安装方法是从Python CheeseShop[9]下载使用EasyInstall[10]完成,而大部分的附加工具也通常以相同方式安装。

URL分派[编辑]

Pylons普遍使用的URL分派器是Routes[7],实际是Ruby on Rails的URL分派的Python重新实现,其他的URL分派器只要是WSGI兼容也可以使用,例如Selector[11]

HTML生成[编辑]

另一个从Rails Pylons化的部分是WebHelpers[12],它提供了基于路径的URL映射。WebHelpers也提供了一些实用的功能来生成基于Template:LePrototype库的JavaScript代码。

模板[编辑]

Myghty是缺省的Pylons模板语言,但在版本0.9.6它被替代为Mako[13]。也可以使用其他模板语比如Template:Le[14]

数据库抽象和对象关系映射[编辑]

Pylons没有默认的数据库程序库。可以使用比较有名的SQLObjectSQLAlchemy

另见[编辑]

参考[编辑]

外部链接[编辑]

Template:Application frameworks Template:Python web frameworks