`
bu_choreography
  • 浏览: 196921 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

从hello world看pyramid的配置

阅读更多
pyramid的配置分为强制式配置和声明式配置
强制式的helloworld是:
from paste.httpserver import serve
from pyramid.config import Configurator
from pyramid.response import Response

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

if __name__ == '__main__':
    config = Configurator()
    config.add_view(hello_world)
    app = config.make_wsgi_app()
    serve(app, host='0.0.0.0')


声明式的helloworld则为:
from paste.httpserver import serve
from pyramid.response import Response
from pyramid.view import view_config

@view_config()
def hello(request):
    return Response('Hello')

if __name__ == '__main__':
    from pyramid.config import Configurator
    config = Configurator()
    config.scan()
    app = config.make_wsgi_app()
    serve(app, host='0.0.0.0')


看起来两段代码差不多,但是声明式的配置在代码量多时的优势就体现出来了,强制式配置需要对每一个view进行添加,数目多了就容易忘记,声明式配置只需要在每一个需要的方法上面就加上注解@view_config(),更加灵活。
分享到:
评论

相关推荐

    Python-AwesomePyramid开源Pythonweb框架Pyramid的应用程序项目和资源集合

    然后,通过实践简单的Hello World应用程序来熟悉其工作原理。接下来,可以尝试一些项目模板,理解Pyramid的项目结构和配置。深入学习可以参考Awesome Pyramid中的教程和案例,了解如何使用模板引擎、处理HTTP请求、...

    python的web编程实例.doc

    然后,使用`@app.route('/')`装饰器定义了一个路由,当访问根URL("/")时,会触发`hello_world`函数,返回"Hello, World!"。最后,通过`app.run()`启动了内置的开发服务器。 2. Django框架 Django则是一个功能更加...

    Nvidia jetson-inference Hello AI World Networks — FCN-ResNet18-MHP-640x360.zip

    本文将深入探讨在"Hello AI World Networks"项目中的FCN-ResNet18-MHP-640x360模型,这是Nvidia Jetson Inference的一个实例。 FCN,全称为全卷积网络(Fully Convolutional Network),是一种用于图像语义分割的深度...

    python之第三方库flask(一)--初识flask(csdn)————程序.pdf

    4. **从文件加载**:使用`app.config.from_pyfile()`方法从.py文件中加载配置,可设置`silent=True`以避免配置文件缺失时抛出异常。 Flask有许多内置的配置项,详细列表可在官方文档中查阅...

    Repoze.BFG 技术手册

    ##### 3.2 HelloWorld示例(声明式配置) 本部分介绍如何使用声明式配置(通过ZCML文件)来创建同样的“Hello World”应用。 - **编写ZCML文件**:创建一个`configure.zcml`文件,用于定义视图和其他配置项。 - **...

    Python库 | waitress-0.8.tar.gz

    return 'Hello, World!' if __name__ == '__main__': waitress.serve(app, host='0.0.0.0', port=8080) ``` 这里,`waitress.serve()`函数用于启动服务器,`host='0.0.0.0'`表示监听所有网络接口,`port=8080`...

    cornice:使用金字塔构建Web服务

    hello_world = Service(name='hello', path='/hello/{name}', description='Says hello to someone') @hello_world.get() def say_hello(request): name = request.matchdict['name'] return {'message': 'Hello...

    PythonWeb从入门到实战教程之1Web简介与网站技术介绍.zip

    在"PythonWeb从入门到实战教程之1Web简介与网站技术介绍"中,你将逐步学习如何设置开发环境,安装Python和必要的库,编写第一个"Hello, World!"程序,了解Web框架的基本用法,以及如何创建简单的动态网页。通过实践...

    Pythonweb框架所需资料

    return ['Hello, World!'] ``` 在这个例子中,`environ`是一个包含所有HTTP请求环境变量的字典,而`start_response`是一个函数,用来设置HTTP响应状态和头部信息。 接下来,"mini_frame"可能是一个简易的Web框架...

    aiopyramid:使用asyncio运行金字塔

    入门Aiopyramid包含一个可创建“ hello world”应用程序的支架,将其签出。 该支架的设计工作,要么通过定制工人或通过。 在此示例中,我们将使用gunicorn并安装aiopyramid及其定义的gunicorn附加功能: pip install...

    韩顺平、听课笔记 第1天

    #### “Hello World”程序示例 - **编写**:创建名为`Hello.java`的源代码文件。 - **编译与执行**:使用`javac Hello.java`编译,然后使用`java Hello`命令执行程序。 ### 数据类型与变量 #### 基本数据类型 - **...

    ENVI+IDL二次开发

    例如,文件名为"HelloWorld"的示例可能就是展示如何在IDL环境中编写一个简单的脚本,来熟悉基本的读写操作。 总结来说,ENVI+IDL的二次开发涵盖了遥感图像的全过程,从基础的读写到复杂的几何、辐射校正,再到图像...

    OpenCV中文入门

    - **Linux系统**:`g++ hello-world.cpp -o hello-world -I/usr/local/include/opencv -L/usr/local/lib -lm -lcv -lhighgui -lcvaux` - **Windows系统**:需要注意设置OpenCV头文件和库文件的路径。 #### 七、...

    python_wsgi_application

    return ['Hello, World!\n'] ``` 这里,`environ`包含了所有来自服务器的环境信息,如HTTP头、请求方法等;`start_response`用于设置HTTP状态码和响应头;返回的列表将作为HTTP响应的主体。 4. WSGI中间件 WSGI...

Global site tag (gtag.js) - Google Analytics