Django 工作流程
一、Django 工作流程
在开始具体的代码之旅前,先来宏观地看下Django是如何处理Http Resquest的,如下图:
假设你已经在浏览器输入了 http://127.0.0.1:8000/polls/,接下来浏览器会把请求交给Django处理。根据上图,我们知道Django需要根据url来决定交给谁来处理请求,那么Django是如何完成这项工作呢?很简单,Django要求程序员提供urls.py文件,并且在该类文件中指定请求链接与处理函数之间的一一对应关系。
在Django中的urls.py添加以下语句,即可指定请求链接与处理函数之间的一一对应关系。
urlpatterns = patterns(
'',
url(r'^polls/$', views.index),
)
这样当请求链接为http://127.0.0.1:8000/polls/时,就会用views.py中的函数index()来处理请求。现在Django知道由index来处理请求了,那么index需要做哪些工作呢?
它需要加载返回内容的模板,这里比如说是index.html。
def index(request): return render(request,'index.html')
在模板方面,模板文件就是返回页面的一个骨架,我们可以在模板中指定需要的静态文件,也可以在模板中使用一些参数和简单的逻辑语句,这样就可以将其变为用户最终看到的丰满的页面了。
要使用静态文件,比如说css、javascript等,只需要用{% load staticfiles %}来声明一下,然后直接引用即可。
在数据库方面,Django给我们封装了数据库的读写操作,我们不需要用SQL语句去查询、更新数据库等,我们要做的是用python的方式定义数据库结构(在model.py里面定义数据库),然后用python的方式去读写内容。至于连接数据库、关闭数据库这些工作交给Django去替你完成吧。
至此,整个框架的简单介绍结束。
二、
这张图片是我对django工作流程一个大致的分析。
在你写好一个完整的django后,它的工作流程应该是这样的:
1.用户在客户端浏览器输入URL地址,通过get/post请求方式,向服务端发起请求。
2.django服务端接收到客户端请求,通过urls.py中地址与处理函数之间的一一对应,找到对应的视图函数。
3.开始执行对应视图函数中的逻辑,通过与models交互,进行数据库的CRUD,django已经封装好了数据库操作方法,不需要额外的sql语句在进行数据库操作。
4.与templates交互,将参数返回到前端页面,并通过templates进行html页面渲染。
这是我学习django框架后对它的工作流程的简单了解,如果有不对的地方,欢迎指正。
本文主要摘自:1. https://blog.csdn.net/xsj_blog/article/details/53737424
2. https://blog.csdn.net/kukudehui/article/details/79465020
Django 工作流程的更多相关文章
- Django 的工作流程和基本内容
1.一个基本的Django请求流程 我们先开始写一个基本的请求.这个请求的获取和处理,是使用 urls.py 和 views.py 处理的.我们使用命令 python manage.py runser ...
- django的流程和命令行工具
django实现流程django #安装: pip3 install django 添加环境变量 #1 创建project django-admin startproject mysite ---my ...
- Python Django框架笔记(三):django工作方式简单说明和创建用户界面
(一) 说明 简单说明下django的工作方式,并举2个例子. (二) Django工作方式 假定我们有下面这些文件 ,这里在前2篇的基础上增加了 templates目录(存放html文件) 和s ...
- struts2工作流程
struts2的框架结构图 工作流程 1.客户端请求一个HttpServletRequest的请求,如在浏览器中输入http://localhost: 8080/bookcode/Reg.action ...
- SecondaryNameNode的工作流程
SecondaryNameNode是用来合并fsimage和edits文件来更新NameNode和metadata的. 其工作流程为: 1.secondary通知namenode切换edits文件 2 ...
- Storm 中什么是-acker,acker工作流程介绍
概述 我们知道storm一个很重要的特性是它能够保证你发出的每条消息都会被完整处理, 完整处理的意思是指: 一个tuple被完全处理的意思是: 这个tuple以及由这个tuple所导致的所有的tupl ...
- gitlab工作流程简介
gitlab工作流程简介 新建项目流程 创建/导入项目 可以选择导入github.bitbucket项目,也可以新建空白项目,还可以从SVN导入项目 建议选择private等级 初始化项目 1.本地克 ...
- Git 工作流程
Git 作为一个源码管理系统,不可避免涉及到多人协作. 协作必须有一个规范的工作流程,让大家有效地合作,使得项目井井有条地发展下去.”工作流程”在英语里,叫做”workflow”或者”flow”,原意 ...
- Spark基本工作流程及YARN cluster模式原理(读书笔记)
Spark基本工作流程及YARN cluster模式原理 转载请注明出处:http://www.cnblogs.com/BYRans/ Spark基本工作流程 相关术语解释 Spark应用程序相关的几 ...
随机推荐
- DBUtile
DBUtils是Python的一个用于实现数据库连接池的模块. 模式: - 每个线程创建一个连接,关闭(默认不关闭),线程终止时,才关闭连接. - 创建共享连接池 应用:只要写原生SQL,用户数据框连 ...
- redis之(十一)redis实现缓存的功能
[一]redis实现缓存的原理 --->利用键的失效时间设置实现缓存技术 --->由于redis的内存有限,可以在redis的配置文件里设置maxmemory的参数.来限制redis最大可 ...
- hdu 1547(BFS)
Bubble Shooter Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- Python3通过汉字输出拼音
https://github.com/mozillazg/python-pinyin # pip install pypinyin from pypinyin import pinyin, lazy_ ...
- 主机批量扫描工具fping,hping安装及使用
https://blog.csdn.net/weixin_39762926/article/details/79476196?utm_source=blogxgwz0 https://blog.csd ...
- WPF Binding 的顺序问题
做了一个Win 8 Store APP,其中有一个List Box,从另外一个Page Navigate到这个Page之后,需要自动选中 List Box中的一项. 开始是这么写的 <ListB ...
- hbase+hadoop+hdfs集群搭建 集成spring
序言 最近公司一个汽车项目想用hbase做存储,然后就有了这篇文字,来,来,来, 带你一起征服hbase,并推荐一本书<hbase权威指南> 这是一本极好的hbase入门书籍,我花了一个晚 ...
- webStorm配置es6转es5
话说又开始新项目了,刚好今天学习的es6新语法可以试试手,回到家后开始继续学习,然后只是学习es6没有必要弄个gulp,总觉得浪费. 那么前端开发神器的webStorm是一定会支持es6的,于是百度了 ...
- Markdown 表情包
- Maven实用总结
使用Maven还是推荐IDEA,以前用eclipse总是喜欢出现乱七八糟的问题,具体错误和解决方案也记不清楚了. 下面总结下IDEA中遇到的问题和解决方法: 与IDEA搭配的相关问题 如何根据模板快速 ...