请问python的aiohttp.web的一些问题
遇到一段Web框架代码,一直理解不了。def init():
app = web.Application()
app.add_routes()
logging.info('Server started at 127.0.0.1...')
web.run_app(app, host='127.0.0.1', port=8080)
请问这其中的app.add_routes() 具体用法含义是什么呢?
我去看了官网的示例,里面的解释是,对于一个HTTP的请求实例,我们会有一个handler去处理,这个handler处理的方式就是:
使用app.add_routes这个方法,将它要处理的request注册到一个特定的路由上。
这我就特别懵逼了,为什么注册到一个特定的路由上就可以处理这个request?路由又为什么要用(method, path)来表示呢? 这个path具体是什么path?比如这里一个/是告诉路由要去哪里找什么东西吗?
感谢大家!或者希望哪位大佬可以推荐我去补充什么相应的知识。 你需要学习 HTTP 协议,比如看 图解 HTTP,或者 MDN 网站。
HTTP 是一个网络协议,那么,就与 IP,TCP 一样,需要一个东西来表示目的地址。
在网络层,使用 IP 地址;在传输层,使用端口号。而在 HTTP 协议中,就是使用的 METHOD + PATH 来表示一个服务接口。
PATH(即 URL 的 PATH,不清楚的同学,自行去 Wikipedia 查找) 虽然可以表示一个请求的资源,但是,在 HTTP 协议中,允许对一个资源上作用多种 METHOD (GET, POST, PUT, PATCH, DELETE, HEAD, OPTION etc.),而这些 METHOD 对一个资源的访问,理应是有区别的。
因此,为了接口功能的唯一性,要求 METHOD + PATH 对确定唯一的一个服务接口。
对应到代码
app.add_routes()
get: 是 METHOD
‘/': 是 PATH
index: 当使用 GET(METHOD),请求资源(PATH)时,调用 index 函数处理请求
本帖最后由 wp231957 于 2020-6-13 05:14 编辑
路由是针对客户端说的
我们这里讲的是服务端,
客户端要访问服务端,需要表明身份,比如协议,端口号,路由,path,请求方法
这些需要你掌握,或者你写多了,自然就熟了
页:
[1]