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

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

动手写一个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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值