sanic source code reading 1.1

本文介绍了Sanic Web框架的关键组件,包括路由管理、日志记录、响应处理及服务器配置等核心功能。通过深入剖析各模块的工作原理,如如何定义URL与处理函数的映射、如何定制HTTP响应以及服务器的启动流程等,帮助读者更好地理解Sanic框架的设计理念和技术实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

acb67ea

__init__.py config.py log.py response.py router.py sanic.py server.py

1.router.py

两个属性,一个是 routers字典,用来保存url和对应handler;一个是default,也就是defaulthander

方法两个:get add

2.log.py

返回logger对象 logging.getlogger(__name__)

调用是  log.error("Writing request failed, connection closed")

3.response.py

STATUS_CODES 404 200

class   HTTPResponse

主要是 output方法,调用加property修饰器的body_bytes方法,将

b''.join([
'HTTP/{} {} {}\r\n'.format(version, self.status, STATUS_CODES.get(self.status, 'FAIL')).encode('latin-1'),
'Content-Type: {}\r\n'.format(self.content_type).encode('latin-1'),
'Content-Length: {}\r\n'.format(len(body)).encode('latin-1'),
'Connection: {}\r\n'.format('keep-alive' if keep_alive else 'close').encode('latin-1'),
b'\r\n',
body,
#b'\r\n'
])

构造并返回

提供两个方法json text一个是将json封装成HTTPResponse对象,一个是把普通字符串封装成前面对象

4.server.py

uvloop asyncio ===>async_loop

这里让系统给这几个属性直接分配指定空间,不用在创建新对象的时候占太多内存

 

转载于:https://www.cnblogs.com/billhsu2009/p/8934249.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值