鱼C论坛

 找回密码
 立即注册
查看: 1208|回复: 2

[已解决]请问python的aiohttp.web的一些问题

[复制链接]
发表于 2020-6-13 04:23:12 | 显示全部楼层 |阅读模式
10鱼币
遇到一段Web框架代码,一直理解不了。
def init():
    app = web.Application()
    app.add_routes([web.get('/', index)])
    logging.info('Server started at 127.0.0.1...')
    web.run_app(app, host='127.0.0.1', port=8080)

请问这其中的app.add_routes([web.get('/', index)]) 具体用法含义是什么呢?
我去看了官网的示例,里面的解释是,对于一个HTTP的请求实例,我们会有一个handler去处理,这个handler处理的方式就是:

使用app.add_routes这个方法,将它要处理的request注册到一个特定的路由上。

这我就特别懵逼了,为什么注册到一个特定的路由上就可以处理这个request?路由又为什么要用(method, path)来表示呢? 这个path具体是什么path?比如这里一个/是告诉路由要去哪里找什么东西吗?

感谢大家!或者希望哪位大佬可以推荐我去补充什么相应的知识。
最佳答案
2020-6-13 04:23:13
你需要学习 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([web.get('/', index)])

get: 是 METHOD
‘/': 是 PATH
index: 当使用 GET(METHOD),请求资源(PATH)时,调用 index 函数处理请求

最佳答案

查看完整内容

你需要学习 HTTP 协议,比如看 图解 HTTP,或者 MDN 网站。 HTTP 是一个网络协议,那么,就与 IP,TCP 一样,需要一个东西来表示目的地址。 在网络层,使用 IP 地址;在传输层,使用端口号。而在 HTTP 协议中,就是使用的 METHOD + PATH 来表示一个服务接口。 PATH(即 URL 的 PATH,不清楚的同学,自行去 Wikipedia 查找) 虽然可以表示一个请求的资源,但是,在 HTTP 协议中,允许对一个资源上作用多种 METHOD (GET, POST, PU ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-13 04:23:13 | 显示全部楼层    本楼为最佳答案   
你需要学习 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([web.get('/', index)])

get: 是 METHOD
‘/': 是 PATH
index: 当使用 GET(METHOD),请求资源(PATH)时,调用 index 函数处理请求

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-13 05:13:23 From FishC Mobile | 显示全部楼层
本帖最后由 wp231957 于 2020-6-13 05:14 编辑

路由是针对客户端说的
我们这里讲的是服务端,
客户端要访问服务端,需要表明身份,比如协议,端口号,路由,path,请求方法
这些需要你掌握,或者你写多了,自然就熟了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 16:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表