django 框架原理

发布时间:2020-07-21 04:30:39 作者:liveyoufo
来源:网络 阅读:143

一、什么是web服务
1.web服务包含两个部分,http服务器,app应用程序.
2.httpd服务器负责解析数据,并封装调用socket请求
3.app应用负责业务逻辑,包括增删改查等操作
4.http服务器一旦接受客户端请求就会解析数据并调用app应用,app解析完数据后返回给http服务,并响应给客户端

二、客户端和web服务通信,web服务和app应用怎么通信
1.客户端和web服务通信
客户端和web服务通信使用http协议
C/S 模型,
request请求包括:
第一部分:请求行
第二部分:请求头
第三部分:空行
第四部分: 请求体
response包括:
第一部分:状态行,由HTTP/1.1(协议版本) 200(状态码) OK(状态码的描述) 构成
第二部分:响应头,由一些键值对构成,用来说明客户端要使用的一些附加信息
第三部分:空行,响应头后面的空行时必须的
第四部分:响应正文,服务器返回给客户端的文本信息

2.web服务和app使用怎么通信
在web服务和app应用之间需要定义一个接口规则,或者叫协议,规定两者之间数据通信方式,即web服务以怎样的方式调用app应用.
python规定,web服务的接口规则是wsgi协议,wsgi协议对于server和app接口定义如下:
server调用方式:
response = application(environ, start_response)
application接口编码:
def application(environ, start_response):
status = '200 OK'
response_headers = [('Content-Type', 'text/plain'),]
start_response(status, response_headers)
return [b'hello',]

只要遵从上述调用方式,均实现了wsgi协议.

python内置了wsgiref模块,用于提供server服务,django使用此模块开发测试,但是生产环境使用其他模块来处理
一次web服务到app响应的流程图如下:

django 框架原理

三、定义一个简单的wsgi服务器框架
django框架的server部分由python内置的wsgiref模块提供,我们只需要编写application应用程序部分
from wsgiref.simple_server import make_server

def app(environ, start_response): # wsgi协议规定的application部分的编码形式,可在此基础上扩展
status = '200 OK'
respones_headers = []

start_response(status, response_headers)
return [b'hello',]
if name == 'main':
httpd = make_server('127.0.0.1', 8080, app)
httpd.serve_forever()

wsgi框架请求响应流程:
django 框架原理

四、django的server实现
django使用的server是基于python内置的wsgiref模块的simple_server,每次django启动都会执行run函数,run函数会调用server_forver方法,此步骤会执行socket_server的循环执行,这样就能不断监听客户端的请求,server端调用application响应用户请求

五、django的application实现
django的application是通过WSGIhandle的一个实例来实现,此实例可以被回掉,然后根据wsgi的接口规则传入environ和start_response。所以本质上,django就是使用的内置python提供的wsgiref.simple_server再对application进行丰富的封装。大部分的django编码工作都在application部分

六、django调用链
django 框架原理

推荐阅读:
  1. 关于Django创建模型时,django.db.utils.OperationalError错误
  2. django框架

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

django dj

上一篇:python脚本之ftp上传日志

下一篇:Exchange Server 2016安装部署系列二: 邮箱服务器角色安装

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》