动手写一个Python Web 框架学习笔记 - 相关依赖学习(2)

本文是动手写Python Web框架的学习笔记,主要探讨了aiohttp异步框架的基本概念和用途,jinja2前端模板引擎的功能和应用,以及aiomysql作为Python异步MySQL驱动的简介。通过了解这些库的基本信息,为后续的Web框架开发奠定基础。

动手写一个Python Web 框架学习笔记 - 相关环境学习(2)

在上一篇动手写一个Python Web 框架学习笔记 - 搭建开发环境 (1)
当中,我跟随那篇教程的作者做了一个环境搭建,作为第二篇学习笔记,我并不准备跟随他的教程走。因为虽然是动手写一个Python Web框架,但是这个框架依然少不了一些对已有库或开源项目的依赖,所以想先了解下上一篇涉及到的几个开源库和引擎

这其中有:
异步框架 aiohttp
前端模板引擎jinja2
MySQL的Python异步驱动程序aiomysql

这里主要是收集一些基本资料,知道他是干什么的,可以怎么用就可以了

1 aiohttp

依然是在廖老师的那个博客里面有介绍aiohttp:点击查看

asyncio可以实现单线程并发IO操作。如果仅用在客户端,发挥的威力不大。如果把asyncio用在服务器端,例如Web服务器,由于HTTP连接就是IO操作,因此可以用单线程+coroutine实现多用户的高并发支持。

asyncio实现了TCP、UDP、SSL等协议,aiohttp则是基于asyncio实现的HTTP框架。

嗯,我看了一下,从这里看aiohttp其实是在asyncio上构建的一个HTTP框架,嗯HTTP很重要,不是么?作为一个Web框架,我想这是很重要的一点,不过他写的也不多,接下来我去官网看看。

aiohttp 官方网站

aiohttp

其上面还给了一些示例代码,但是反正我也不懂,就不贴了。。现在大概知道他是做一个http client和server的框架了。

看了一下AIOHTTP文档的关键字,大概看到如下的一些信息:
Client Server 等等的具体描述,我想如果以后用到相关的部分的时候再去翻一下教程也不迟吧?

比如当我们用作客户端的时候,随便做一个请求(我简单翻译了下):

首先引入:

import aiohttp

随后假设请求访问的是GayHub

with aiohttp.ClientSession() as session:
    async with session.get('https://api.github.com/events') as resp:
        print(resp.status)
        print(await resp.text())

这里有一个session和一个response,通过get的方式请求了一个gayhub的连接,然后做了一个打印。

而如果是要做一个Post,就改成seesion.post,随后再放入数据。。嗯,去看官方文档吧

总之还是比较详细的。。以后我用到再去看。。我只了解用来干什么的就好,目的达成!

2 jinja2

随便百度了下,发现jinja2有中文文档,不错不错
jinja2中文文档

这个引擎之前我似乎在什么地方接触过。。ThinkPHP?不记得了。。不过这个东西相对高层一些。。主要是提供显示了吧。

Jinja2 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言。
它速度快,被广泛使用,并且提供了可选的沙箱模板执行环境保证安全:

<title>{% block title %}{% endblock %}</title> <ul> {% for user in
users %} <li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %} </ul>

特性:

沙箱中执行 强大的 HTML 自动转义系统保护系统免受 XSS 模板继承 及时编译最优的 python 代码 可选提前编译模板的时间
易于调试。异常的行数直接指向模板中的对应行。 可配置的语法

以上就是jinja2的介绍,具体怎么用。。等到那一步再继续吧。。看下一个

3 aiomysql
作为一个web框架,怎么能没有数据库。。所以当然就是mysql了~~
查了下,知道Python语言操作MySQL数据库,要遵守DB API 2.0 规范。所以aiomysql也就是其中一个了

然后照例放一下官网:
aiomysql官网

aiomysql is a library for accessing a MySQL database from the asyncio
(PEP-3156/tulip) framework. It depends and reuses most parts of
PyMySQL . aiomysql tries to be like awesome aiopg library and preserve
same api, look and feel.

Internally aiomysql is copy of PyMySQL, underlying io calls switched
to async, basically yield from and asyncio.coroutine added in proper
places. sqlalchemy support ported from aiopg.

还是用了那个asyncio了~~~ 数据库这部分也不详细讲了。。大家都熟悉,他首页也就这些内容。。等用到在继续。。

嗯,似乎有点水这篇?没事儿我只是了解一下消息脉络而已。

相关文章:
动手写一个Python Web 框架学习笔记 - 搭建开发环境 (1)

内容概要:本文围绕“新型电力系统下多分布式电源接入配电网承载力评估方法”的研究,系统性地介绍了基于Matlab的仿真建模与代码实现方案,旨在评估高比例分布式电源(如光伏、风电等)接入背景下配电网的接纳能力。研究融合了智能优化算法(如蜣螂优化、灰狼优化、遗传算法)、多目标优化、鲁棒优化及双层优化模型,结合潮流计算、稳定性分析与故障仿真,构建了完整的承载力评估体系。文档不仅提供核心算法实现,还拓展至微电网调度、储能配置、电氢耦合系统、电动汽车协同等前沿方向,强调“复现+创新”相结合的科研路径,助力研究者快速掌握高水平论文复现技巧并激发原创思路。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真环境,正在从事科研或工程应用的研究生及初级科研人员(工作1-3年);; 使用场景及目标:①复现高水平期刊中关于配电网承载力的优化模型;②开展高比例可再生能源接入下的配电网规划与运行研究;③学习并应用智能优化算法解决复杂电力系统问题;④获取完整科研资源包以加速课题进展与论文撰; 阅读建议:建议读者关注公众号“荔枝科研社”获取网盘资源,下载全套代码与模型文件,按照文档结构循序渐进学习,重点理解算法设计逻辑与仿真建模细节,结合所提供的复现案例深化对优化模型与工程应用场景的理解,提升科研效率与创新能力。
内容概要:本文系统研究了综合能源系统中的容量配置与运行调度问题,采用双层优化方法构建模型并通过Matlab代码实现求解。上层优化侧重于设备容量的科学配置,以降低投资成本并提升系统经济性;下层优化聚焦于多能源协同运行调度,综合考虑光伏、储能、电动汽车等多种能源形式的动态特性,旨在实现系统在不同运行工况下的能效最大化、运行可靠性与低碳化目标。研究融合智能优化算法(如遗传算法、粒子群算法)与电力系统建模技术,深入探讨了多能耦合、不确定性处理及复杂约束下的优化机制,并提供了完整的仿真案例与代码资源,涵盖微电网调度、风光储协同、电动汽车接入等典型应用场景,形成了具有较强实用价值的科研技术体系。; 适合人群:具备电力系统分析、优化算法理论及Matlab编程基础的研究生、科研人员和工程技术人员,特别适用于从事综合能源系统规划、微电网运行、智能调度与能源互联网等领域研究的专业人士。; 使用场景及目标:① 掌握双层优化在综合能源系统中的建模方法与求解流程;② 利用所提供Matlab代码进行科研复现、算法改进与系统仿真验证;③ 拓展应用于电动汽车集群调度、可再生能源消纳、多能互补系统优化等实际工程与学术研究场景; 阅读建议:建议结合文档中列出的相关研究方向与配套代码资源,按照主题分类循序渐进地学习,优先理解双层架构的设计逻辑与上下层耦合机制,并借助提供的网盘资料开展仿真实验与参数调试,以深化对优化模型与算法实现的理解,提升科研创新能力。
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值