社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Uplink:最简单的Python HTTP客户端

Python程序员 • 8 年前 • 834 次点击  

Uplink让你用最少的代码,构建一个HTTP服务的客户端。

如果你用其他库来做这件事情,比如requests,通常来说你都需要写一个样本代码,然后用一个抽象层来抽象化这个样本代码。但是使用Uplink则不用这样,你只需要使用一些装饰器和注释,就能够构建一个HTTP服务的客户端。

方法注释:静态请求处理

从本质上说,Uplink是使用方法注释来描述这个API请求所需要的特征。

下面是一个例子

使用timeout注释这个类方法,这样get_repos构建的API请求就会在60s没有返回时报超时错误。

使用多个方法注释

你不仅仅可以加一个装饰器,事实上你可以加一系列装饰器

给类中所有方法增加同样的注释

为了给类中所有方法增加一个同样的注释,那么你就把装饰器直接加在类上就好了,就不用在每个方法上单独添加了。

上面这个例子,和下面这个略微麻烦一点的写法作用是一样的。

参数注释:动态请求处理

编程中,一个函数的参数驱动了这个函数的动态行为;一个函数的输出往往依赖于其输入。使用Uplink,你可以通过函数参数来驱动请求中的动态部分,你可以通过正确地进行注释来说明请求中的动态部分。

为了介绍这个特性,在下面的get_user方法中,我们注释说明了函数参数username是一个URL参数。

然后,在客户端你就可以这样调用这个方法了:

这样这个方法发出的请求,其请求地址就是以"users/prkumar"结尾了。

默认使用函数参数名称

像上面的例子中,如果使用Path时不提供名称参数,Uplink会默认使用函数的参数名称作为URL参数的名称。

下面这个例子和上面讲的例子作用是等价的:

使用装饰器注释参数

我们可以使用函数装饰器注释参数。这时,装饰器是从下向上匹配参数的。

例如,在下面这个例子中,注释Url对应参数commits_url,注释Path对应参数sha。

使用uplink.args

还有一个办法就是使用装饰器uplink.args,uplink.args中的注释是按照顺序对应函数参数的。

函数参数注释(只支持Python3)

最后,如果你使用Python3,你还可以直接在函数参数处注释。


英文原文:http://uplink.readthedocs.io/en/latest/introduction.html

译者:诗书塞外



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/HoU6VH5ApI
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4294