`
eric_weitm
  • 浏览: 242792 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

django源代码解析

 
阅读更多

一、wsgi: webserver与app之间的交互标准

    1、输入env,

    2、callback(status header),  

    3、返回数组形式的body

 

def app(environ, start_response):

    start_response('200 OK', [('Content-Type', 'text/plain')])

    yield "Hello world!\n"

 

二、主流程的处理

1、所有的Application统一是 django/core/handlers/wsgi.py WSGIHandler

2、WSGIHandler内部会将整个的处理分为几个阶段

1》load_middleware(初始化时进行一次)

request_middleware

self._view_middleware = []

 

# 后3个是从后往前

       self._template_response_middleware = []

       self._response_middleware = []

       self._exception_middleware = []

   2》触发回调 signals.request_started.send(sender=self.__class__, environ=environ)

    实际只有db部分会断开后再连接

3》构造WSGIRequest

4》get_response ----- 主流程

1、依次回调process_request,有返回值就中断,否则执行下一个

2、根据url找到view

3、依次调用process_view

4、具体回调, -----必须要返回response

5、如果有render,则应用 process_template_response(使用模板前,可以修改模板相关逻辑)

6、使用process_response    ---- 生成response后

7、在这个过程中有异常时,触发process_exception

简单说:process_request parseUrl process_view callback process_template_response render process_response

3、db connection怎么保活? 直接不保活

django.db.backends.base.base.py BaseDatabaseWrapper get_new_connection

django.db.models.sql.compiler.py execute_sql 

 

默认是每个request新开一个数据库connection,之后close(无状态)。如果要维护的话,注意设置connection的状态和数量限制

 

三、典型app的目录结构

manager.py -- 指定setting文件

project

    settings

    urls

    wsgi

    tests

app

    models

    views

    urls

    apps

    admin

static

template

 

分享到:
评论

相关推荐

    django源代码

    了解这些基础知识后,分析Django源代码可以帮助我们更深入地理解它的内部工作原理,包括请求处理流程、数据库操作、模板渲染、中间件机制等。此外,阅读源代码也能帮助开发者定制自己的Django应用,或者为框架贡献...

    基于Django的企业信息管理系统源代码,客户关系管理系统源代码

    【标题】基于Django的企业信息管理系统与客户关系管理系统源代码详解 Django是一个高级的Python Web框架,它鼓励快速开发并遵循干净、实用的设计理念。本项目提供了基于Django实现的企业信息管理系统和客户关系管理...

    Python毕业设计基于Django+Vue3实现的基金分析可视化系统源代码+数据库

    Python毕业设计基于Django+Vue3实现的基金分析可视化系统源代码+数据库Python毕业设计基于Django+Vue3实现的基金分析可视化系统源代码+数据库Python毕业设计基于Django+Vue3实现的基金分析可视化系统源代码+数据库...

    Python毕业设计基于Django+Vue3实现的基金分析可视化系统源代码+数据库+文档说明

    Python毕业设计基于Django+Vue3实现的基金分析可视化系统源代码+数据库+文档说明Python毕业设计基于Django+Vue3实现的基金分析可视化系统源代码+数据库+文档说明Python毕业设计基于Django+Vue3实现的基金分析可视化...

    基于python+Django+vue旅游景点评论情感分析源代码+文档说明(高分完整项目)

    基于python+Django+vue旅游景点评论情感分析源代码+文档说明(高分完整项目)基于python+Django+vue旅游景点评论情感分析源代码+文档说明(高分完整项目)基于python+Django+vue旅游景点评论情感分析源代码+文档说明...

    基于Python的django社交网络分析系统源码.zip

    【描述】:这个压缩包"基于Python的django社交网络分析系统源码.zip"提供了完整的源代码,用于理解和学习如何在Python的Django环境中构建社交网络分析系统。源码通常包含了项目的各个组成部分,如模型、视图、模板和...

    django源码

    "django源码"是指Django框架的原始代码,对于开发者来说,研究源码是深入理解其工作原理、优化自定义功能以及提高开发技能的重要途径。无论你是有Django基础还是初学者,都可以通过学习源码来提升自己的技术水平。 ...

    基于Python Django框架的实战项目源码

    项目标题:基于Python Django的实战项目源码解析 技术栈:本项目主要采用Python语言开发,辅以HTML和CSS进行前端设计。 文件概览:总计174个文件,包括以下类型: - pyc文件(已编译的Python文件):50个 - py文件...

    家装网源代码,网站源代码

    通过分析和调试源代码,可以了解网站的工作原理,进行二次开发或调整以满足特定业务需求。在实际操作中,还需要关注代码的可读性、可维护性和团队协作的规范性,以确保项目能够持续发展和升级。

    python开发基于django存储光交管理系统源代码.zip

    python开发基于django存储光交管理系统源代码。管理存储,光交,服务器,信息收集,分析 python包安装需求 pip install pipenv 安装完成后进入项目内,直接进行安装。 pipenv check #对包内的文件进行核对 pipenv ...

    Python Django上传二维码并解析源代码

    以上就是Django实现二维码上传和解析的基本流程。用户通过网页上传二维码图片,服务器接收到图片后,使用`pyzbar`库解析二维码,然后返回解析到的数据。如果上传的图片中没有有效的二维码,视图函数会返回一个错误...

    实战Django:Pastebin源代码.7z

    通过分析和实践这个源代码,不仅可以提升你对Django框架的理解,还能增强你的Web开发技能,为将来构建复杂Web应用打下坚实基础。同时,这也是一个很好的机会去学习版本控制(如Git)、测试驱动开发(TDD)以及持续...

    基于Django+MySQL开发的大学生就业管理系统源代码(期末大作业).zip

    基于Django+MySQL开发的大学生就业管理系统源代码(期末大作业).zip基于Django+MySQL开发的大学生就业管理系统源代码(期末大作业).zip基于Django+MySQL开发的大学生就业管理系统源代码(期末大作业).zip基于...

    基于Django+Vue3实现的基金分析可视化系统源代码+使用教程.zip

    基于Django+Vue3实现的基金分析可视化系统源代码+使用教程.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。...

    毕业设计python基于django框架流量计远程抄表管理系统源码+数据库文件.zip

    该资源是一个基于Python的Django框架开发的毕业设计项目,主要功能是实现流量计的远程抄表管理。这个管理系统能够帮助用户...通过学习和分析这个项目,开发者可以深入了解Django的实践应用,并提升自己的Web开发技能。

    Django专栏-010阶段的源代码

    【Django专栏-010阶段的源代码】是一个关于Django框架的教程资源,包含了作者在该阶段的教学实例和代码实现。...通过学习和分析这些源代码,开发者能够深入理解Django的工作原理,并提升自己的Web开发技能。

    基于python+django的新能源电动汽车使用体验大数据分析系统+演示视频+报告论文+源代码+文档说明

    基于python+django的新能源电动汽车使用体验大数据分析系统+演示视频+报告论文+源代码+文档说明,该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到98分,放心下载使用!...

    物业管理系统源代码

    1. **系统架构**:源代码可以帮助分析系统采用何种架构,如MVC(模型-视图-控制器)、微服务架构等。理解架构有助于优化性能、扩展功能和维护代码。 2. **数据库设计**:物业管理系统通常涉及到大量的数据存储,如...

    Python在线考试系统Django框架源代码.zip

    Python在线考试系统基于Django框架构建,是一种高效且灵活的教育技术工具,旨在提供便捷的在线测试和评估功能。...通过深入研究这些源代码,可以学习到如何利用Django框架构建复杂的Web应用,提升Python Web开发能力。

Global site tag (gtag.js) - Google Analytics