摘要:
上一篇博客中已经展示了部分路由解析的源码,但是比较大概,不够清晰,只能提供调试的思路。这一篇博客将会抽出路由的每一个组件。详细阐述路由如何解析的。 前面不会连贯起每一个类,因为本篇博客将会是从内向外 URLPattern URLPattern 最简单,我们先来说说这个,注意,截图中的箭头指向的参数的 阅读全文
摘要:
这一篇博客我们尝试使用调试,看看整个请求是怎么触发的,也就是从Django接收到请求到调用具体的视图的流程,我们不尝试探讨整条链路,那样太多了。他们将会在后续的章节中讲解。 准备工作 在准备本文的正文之前,有些东西可能需要先捋清一下。WSGI 服务器的启动和 Django 的运行的关系。首先我在主 阅读全文
摘要:
在学习路由之前,我们需要了解一些常见的 WSGI 参数 WSGIRequestHandler 从 HTTP 请求中提取了 请求函数,请求路径,请求参数,请求类型,并将其存入到 env 中,然后返回 然后调用了 demo_app,因此路由解析是在 demo_app 中进行的。 进一步猜想,如果一个请求 阅读全文
摘要:
使用 Django 开发,一定离不开这条命令,python manage.py runserver [127.0.0.1:8000],这条命令是启动Django, 接下来就可以通过浏览器发起请求了。Django 肯定也会遵守 WSGI 协议,不出意外,我们开发的Django与WSGI服务器是完全解耦 阅读全文
摘要:
WSGI协议的简单实用 WSGI是所有使用Python的Web框架必须遵守的协议,Python中有一个简单的WSGI服务器的实现,名为wsgiref包,意为WSGI参考实现,通过这个包,我们来了解一下WSGI的具体实现 from wsgiref.simple_server import make_s 阅读全文
摘要:
导引 学习Django源码之前,需要搞懂几样东西。 首先需要明白,web 开发只是网络编程的一种,web 请求使用 http 报文,但是 http 报文本身就是网络编程发送的内容,规定了网络编程中应该携带什么内容而已。且看下面一个最简单的网络编程 服务端 import socket import t 阅读全文
摘要:
本文探究Django以及DRF的视图的层层递进,从源码学习视图的不断完善和丰富 01 最简单的视图 FBV urlpatterns = [ path('test01/', views.test01) ] 只要在浏览器上请求 http://127.0.0.1:8000/book/test01/ 就可以 阅读全文
摘要:
索引是数据库表中对一列或多列的值进行排序的一种结构。默认情况下,Django为模型的主键和外键创建索引。索引可以提高表的查询,更新和删除速度,但会降低表的插入速度。 1、使用字段选项创建索引 与索引有关的字段选项: db_index: 为True时,为字段创建索引 primary_key: 为Tru 阅读全文
摘要:
1、为什么会有自定义QuerySet? 这里举一个我们公司出现的情景,我们公司最新增加了广告投放,因此需要基于广告投放做一个分析,广告投放有5个utm参数,不知道可以自己去百度。基于广告分析有三张表,假定分别为ABC,这ABC三张表均有这5个utm参数。现在有一个统计分析的任务,需要对这三张表进行u 阅读全文
摘要:
和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。 全量同步 Redis全量复制一 阅读全文