本身用过django和tornado,一个是大而全,一个是围绕协程和异步IO的两个库,各有优势。今天来聊下新的web框架---hug,看看它有什么本事。
首先,hug的定义是一个RESTFUL API的框架,如果你需要搭建一个API服务,那么HUG可能是你的最佳选择。
准备工作就不说了,无非就是pip install hug
国际惯例,写hello.py咯。
使用hug有什么优势?
1.高性能(官方的说法比较霸气:Unparalleled performance 意思是无与伦比的性能。应该跟其使用cython有关。)
贴一张官网的图
2.内置版本管理(url后,支持versions参数)
3.自动化文档(依赖于你的文档字符串和注释类型)
4.注释形参数验证(利用python3的类型注解,对每个参数进行验证)
5.写一次到处用。还可以用在命令行和其他 python 代码中,因为业务逻辑很干净。
首先,hug的定义是一个RESTFUL API的框架,如果你需要搭建一个API服务,那么HUG可能是你的最佳选择。
准备工作就不说了,无非就是pip install hug
国际惯例,写hello.py咯。
import hug
@hug.get('/hello')
def hello():
'''say hello'''
return 'hello'
启动命令稍微有点不同,使用hug -f hello.py
是不是很萌呢?
对启动命令稍微做个修改吧,使用bottle实现自动重启。
import hug
from bottle import run
@hug.get('/hello')
def hello():
'''say hello'''
return 'hello!'
if __name__ == "__main__":
app = __hug__.http.server()
run(app=app, reloader=True, port=8000)
使用hug有什么优势?
1.高性能(官方的说法比较霸气:Unparalleled performance 意思是无与伦比的性能。应该跟其使用cython有关。)
贴一张官网的图
2.内置版本管理(url后,支持versions参数)
3.自动化文档(依赖于你的文档字符串和注释类型)
4.注释形参数验证(利用python3的类型注解,对每个参数进行验证)
5.写一次到处用。还可以用在命令行和其他 python 代码中,因为业务逻辑很干净。
这里只是简单的入个门,具体牛逼的用法,还需大家看源码及官网继续深入。
参考:
http://www.hug.rest/
http://www.hug.rest/website/learn/