前言
Python常用的web框架有django,flask,tornado,bottle等,这些Python框架,用来帮助你更轻松的创建web应用。这些框架把相应的模块组织起来,使得构建应用的时候可以更快捷,也不用去关注一些细节(例如socket和协议),所以需要的都在框架里了。
django 框架是python开发的常用web框架
深度解析下来,django其中一个的重要特性就是使用了路由的概念
百科
路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程 [1] 。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实 现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。
通俗的说路由是为了帮我们快速的你要找到的东西,是为了更加高效的,明确的定位你自己需要到达的地方。一根电源线,或者是一条公路,都能顺着走到它的另一头。我们将他们排理清楚,就是路由的概念。
django的模板结构
HelloWorld/
|-- HelloWorld
| |-- __init__.py
| |-- __init__.pyc
| |-- settings.py
| |-- settings.pyc
| |-- urls.py
| |-- urls.pyc
| |-- view.py
| |-- view.pyc
| |-- wsgi.py
| `-- wsgi.pyc
|-- manage.py
`-- templates
`-- hello.html
这是一个新建的django工程的目录结构,我们可以看到setting.py文件,urls.py文件view.py,manage.py文件等,还有一些以.pyc结尾的python二进制编译文件,这些都是构成django 框架的基础条件
首先我们需要了解一个web框架的基本构建是怎么样的。
简单的描述这个过程就是
- 首先浏览器发送请求
- 我们的服务器解析浏览器的请求操作
- 分析浏览器操作,调取对应的静态资源和动态资源
这样来说我们还是应该感谢框架带给我们的便利,因为它已经解决了很多我们搭建web时候需要注意的问题,框架一一都帮我们做完了,我们可以根据自己的需求去选择对应的框架。
django特性(路由列表)
我们知道在使用django编写程序的时候,我们需要在views.py 中定义函数,函数定义完成后,我们需要在urls.py中指定路由URL,这是编写django的基本操作,这里我写了一个demo,我将views.py中的一个函数index()移到urls.py中方便理解
路由中的核心基本概念是将URL与函数构造成字典,
"Key":"Values"
可以理解图中的字典构造为
"/": "index的函数引用地址"
这样用户在浏览器端发送某个url请求时,就会去查询构造的字典中是否存在这样的URL,如果存在就调用对应的函数引用地址,如果不存在则不会返回引用函数地址,也不能继续对应操作,这个时候,我们就会报该次请求404not found ,或者丢失的response响应。这样的设计,减少了代码的冗余量,代码简洁,使我们可以更加高效的编写我们的web程序。
构造字典的K 记录我们的url地址 V记录我们函数引用地址,将字典放入列表中,这就是路由列表。
纯手敲,个人理解,有不对的地方还望各位批评指正,每一天都可以有新的收获。