流程中的个体功能
wsgi : 封装请求后交给后端的web框架( Flask、Django ),将响应的内容发送给浏览器。
请求中间件: 对请求进行校验或在请求对象中添加其他相关数据,例如: csrf、request.session 。
路由匹配: 根据浏览器发送的不同url 去匹配不同的视图函数。
视图函数: 在视图函数中进行业务逻辑的处理,可能涉及到: ORM、Templates 。
响应中间件: 对响应的数据进行处理。
项目流程图
流程的文字叙述
(1)客户端访问网址http://127.0.0.1:8000/book/1/,客户端向127.0.0.1发起了一个http请求
(2)服务器端要对于客户端的请求进行处理,访问的web程序是flask框架完成的,需要wsgi(web server gateway interface)帮我们处理客户端的请求
(3)项目启动时,pyhton manage.py 加载了一些信息(读取Django项目的配置文件,文件包含:路由配置文件位置,数据库存储位置,模版存储位置)
(4)访问路由配置文件Django2/urls.py 注意请求的路由是 /book/1
文件中有 path(book/",include('bookApp.urls')) 这个代码的表达的是 如果请求路径以book开头 则读取bookApp子应用里面的路由配置文件
(5)读取bookApp子应用的配置文件 注意请求路由是 /book/1
path(’<int:id>/‘,views.detail,name='detail') 如果请求的路径满足条件 则执行视图函数view.detail
(6)执行路由对应的视图函数
注意3点:
(1)返回的是否是纯文本字符串 如果是 则把纯文本字符串作为响应返回给用户浏览器;
(2)是否需要对数据库进行查询 ? yes , Book.objects.get(id)==SQL通过面向对象的方式查询数据库的信息 真实是执行数据库sql语句的;
(3)判断是否前端显示? yes 前端展示的模版在哪 bookApp/detail.html
(4) 最终数据库查询到的书籍信息返回给模版文件(HTML文件),汇总之后(渲染)返回给用户浏览器