|
|
51CTO旗下网站
|
|
移步端
  • 如何使用Pyramid和Cornice编纂Python Web API

    采用 Pyramid 和 Cornice 构建和描述可扩展的 RESTful Web 劳务。

    笔者:Moshe Zadka 来源:Linux中华| 2020-01-16 11:42

    如何使用Pyramid和Cornice编纂Python Web API

    采用 Pyramid 和 Cornice 构建和描述可扩展的 RESTful Web 劳务。

    Python 是一种高级的、面向对象的编程语言,他以他简单的语法而享誉。他一直是构建 RESTful API 的头号编程语言之一。

    Pyramid 是一番 Python Web 框架,意志随着应用的壮大而恢宏:这可以让简单的使用很简单,也得以提高为大型、复杂的使用。另外,Pyramid 为 PyPI (Python 软件包索引)提供了有力的支持。Cornice 为使用 Pyramid 构建和描述 RESTful Web 劳务提供了助力。

    本文将使用 Web 劳务的例证来获取名人名言,来展示如何使用这些家伙。

    确立 Pyramid 使用

    第一为你的使用创建一个虚拟环境,并创造一个文件来保存代码:

          
    1. $ mkdir tutorial
    2. $ cd tutorial
    3. $ touch main.py
    4. $ python3 -m venv env
    5. $ source env/bin/activate
    6. (env) $ pip3 install cornice twisted

    导入 Cornice 和 Pyramid 模块

    采用以下命令导入这些模块:

          
    1. from pyramid.config import Configurator
    2. from cornice import Service

    定义服务

    名将引用服务定义为 Service 目标:

          
    1. QUOTES = Service(name='quotes',
    2.                  path='/',
    3.                  description='Get quotes')

    编纂引用逻辑

    到当前结束,这仅支持获取名言。用 QUOTES.get 装点函数。这是将逻辑绑定到 REST 劳务的主意:

          
    1. @QUOTES.get()
    2. def get_quote(request):
    3.     return {
    4.         'William Shakespeare': {
    5.             'quote': ['Love all, trust a few, do wrong to none',
    6.             'Some are born great, some achieve greatness, and some have greatness thrust upon them.']
    7.     },
    8.     'Linus': {
    9.         'quote': ['Talk is cheap. Show me the code.']
    10.         }
    11.     }

    请注意,与其他框架不同,装点器不会改变 get_quote 函数。如果导入此模块,你仍然可以定期调用该函数并检查结果。

    在为 Pyramid RESTful 劳务编写单元测试时,这很有用。

    定义应用对象

    说到底,采用 scan 追寻所有修饰的函数并将他添加到配置中:

          
    1. with Configurator() as config:
    2.     config.include("cornice")
    3.     config.scan()
    4.     application = config.make_wsgi_app()

    默认扫描当前模块。如果要扫描软件包中的所有模块,你也得以提供软件包的称谓。

    运作服务

    我利用 Twisted 的 WSGI 传感器运行该应用,但是如果需要,你可以运用任何其他 WSGI 传感器,例如 Gunicorn 或 uWSGI。

          
    1. (env)$ python -m twisted web --wsgi=main.application

    默认情况下,Twisted 的 WSGI 传感器运行在端口 8080 上。你可以运用 HTTPie 高考该服务:

          
    1. (env) $ pip install httpie
    2. ...
    3. (env) $ http GET <http://localhost:8080/>
    4. HTTP/1.1 200 OK
    5. Content-Length: 220
    6. Content-Type: application/json
    7. Date: Mon, 02 Dec 2019 16:49:27 GMT
    8. Server: TwistedWeb/19.10.0
    9. X-Content-Type-Options: nosniff
    10.  
    11. {
    12.     "Linus": {
    13.         "quote": [
    14.             "Talk is cheap. Show me the code."
    15.         ]
    16.     },
    17.     "William Shakespeare": {
    18.         "quote": [
    19.             "Love all,trust a few,do wrong to none",
    20.             "Some are born great, some achieve greatness, and some greatness thrust upon them."
    21.         ]
    22.     }
    23. }

    为什么要使用 Pyramid?

    Pyramid 并不是最受欢迎的框架,但他已在 PyPI 等部分引人注目的品种中采用。我喜欢 Pyramid,因为他是认真对待单元测试的框架之一:因为装饰器不会修改函数并且没有点程局部变量,故此可以直接从单元测试中滥用函数。例如,要求访问必发娱乐登录的函数将下通过 request.config 传递的 request.config 目标中获取它。这允许单元测试人员将模拟(或真实)必发娱乐登录对象放入请求中,而不用仔细设置全局变量、点程局部变量或其它特定于框架的东西。

    如果你正在搜寻一个经过补考的库来构建你接下来的 API,请尝试使用 Pyramid。你不会失望的。

    【义务编辑: 庞桂玉 TEL:(010)68476606】

    点赞 0
  • Pyramid  Cornice  Python Web API
  • 分享:
    大家都在看
    猜你喜欢
  • 订阅专栏+更多

    Python使用场景实战手册

    Python使用场景实战手册

    Python使用场景实战手册
    共3章 | KaliArch

    118人口订阅学习

    一步到位玩儿透Ansible

    一步到位玩儿透Ansible

    Ansible
    共17章 | 骏马金龙1

    186人口订阅学习

    云架构师修炼手册

    云架构师修炼手册

    云架构师之必不可少技能
    共3章 | Allen在路上

    132人口订阅学习

    读 书 +更多

    Visual Studio 2005+SQL Server 2005必发娱乐登录应用系

    该书主要介绍采用Visual Studio 2005的C#语言为前台,SQL Server 2005必发娱乐登录为后台的必发娱乐登录系统开发技术。 全党分为15章,情节包括走进.NE...

    订阅51CTO邮刊

    点击这里查看样刊

    订阅51CTO邮刊

    51CTO劳务号

    51CTO官微

    1. 
         
          
         
         

      &lt;center id="12d1c1ef"&gt;&lt;/center&gt;
      &lt;noscript id="904000f4"&gt;&lt;/noscript&gt;