Python Pyramid 第一个程序
示例
为了检查Pyramid以及它的依赖是否正常安装,输入以下代码并将其保存为 hello.py ,使用任何支持Python的编辑器。
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()
配置器对象用于定义URL路由并将视图函数与之绑定。从该配置对象中获取的WSGI应用程序对象作为参数传递给 make_server() 函数,同时传递本地主机的IP地址和端口。当调用 serve_forever() 方法时,服务器对象进入监听循环。
在命令终端中运行此程序。
Python hello.py
输出
WSGI服务器开始运行。打开浏览器,在地址栏中输入http://loccalhost:6543/。当请求被接受时, hello_world() 视图函数将被执行。它返回Hello world消息。Hello world消息将在浏览器窗口中显示。
如前所述,在wsgiref模块中通过make_server()函数创建的开发服务器不适用于生产环境。相反,我们将使用Waitress服务器。按照以下代码修改hello.py:
from pyramid.config import Configurator
from pyramid.response import Response
from waitress import serve
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()
serve(app, host='0.0.0.0', port=6543)
所有其他功能都是一样的,只是我们使用 waitress 模块的 serve() 函数来启动WSGI服务器。运行程序后,在浏览器中访问’/’路由,仍然会显示Hello world消息。
除了函数,也可以使用可调用类作为视图。可调用类是指重写了 __call__() 方法的类。
from pyramid.response import Response
class MyView(object):
def __init__(self, request):
self.request = request
def __call__(self):
return Response('hello world')