Pecan

Pecan

Pecan框架的目标是实现一个采用对象分发方式进行URL路由的轻量级Web框架。它非常专注于自己的目标,它的大部分功能都和URL路由以及请求和响应的处理相关,而不去实现模板、安全以及数据库层,这些东西都可以通过其他的库来实现。关于Pecan的更多信息,可以查看文档。本文以,OpenStack的magnum项目为例来说明Pecan项目在实际中的应用,但是本文不会详细讲解Pecan的各个方面,一些细节请读者阅读Pecan的文档。

项目中的代码结构

使用Pecan框架时,,OpenStack项目一般会把API服务的实现都放在一个api目录下,比如magnum项目是这样的:

? ~/openstack/env/p/magnum git:(master) $ tree magnum/api
magnum/api
├── app.py
├── auth.py
├── config.py
├── controllers
│   ├── base.py
│   ├── __init__.py
│   ├── link.py
│   ├── root.py
│   └── v1
│   ├── base.py
│   ├── baymodel.py
│   ├── bay.py
│   ├── certificate.py
│   ├── collection.py
│   ├── container.py
│   ├── __init__.py
│   ├── magnum_services.py
│   ├── node.py
│   ├── pod.py
│   ├── replicationcontroller.py
│   ├── service.py
│   ├── types.py
│   ├── utils.py
│   └── x509keypair.py
├── expose.py
├── hooks.py
├── __init__.py
├── middleware
│   ├── auth_token.py
│   ├── __init__.py
│   └── parsable_error.py
├── servicegroup.py
└── validation.py

你也可以在Ceilometer项目中看到类似的结构。介绍一下几个主要的文件,这样你以后看到一个使用Pecan的,OpenStack项目时就会比较容易找到入口。

app.py 一般包含了Pecan应用的入口,包含应用初始化代码

config.py 包含Pecan的应用配置,会被app.py使用

controllers/ 这个目录会包含所有的控制器,也就是API具体逻辑的地方

controllers/root.py 这个包含根路径对应的控制器

controllers/v1/ 这个目录对应v1版本的API的控制器。如果有多个版本的API,你一般能看到v2等目录。

参考链接:

http://www.tuicool.com/articles/iMBN3eE(通过demo学习OpenStack开发所需的基础知识 -- API服务)

http://www.tuicool.com/articles/zEBbamQ(学习OpenStack开发(下))

results matching ""

    No results matching ""