01 2023 档案
摘要:调试特点 如果 B 继承了 A, 那么在调试器中,只能看到 B 的直接属性或者方法,看不到它所继承的。先明白这一点 Manager 注意每一窗口下方的代码位置,方便快速定位代码。 【1】objects 是在 Django 环境加载的时候就已经添加了的,代码加载的时候会触发【3】 【2】当前的 Man
阅读全文
摘要:下面进入到了 ORM 的学习,ORM 篇幅较长,因为函数太多。我们主要分为两个部分,Model 和 QuerySet 元类 在python中万物皆对象,类也是一个对象,自定义的类或是python中内置的类都是由元类(type)实例化来的。因此元类也是一种类。 元类 ——实例化——> 类 ——实例化—
阅读全文
摘要:上一篇博客中已经展示了部分路由解析的源码,但是比较大概,不够清晰,只能提供调试的思路。这一篇博客将会抽出路由的每一个组件。详细阐述路由如何解析的。 前面不会连贯起每一个类,因为本篇博客将会是从内向外 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/ 就可以
阅读全文