django中url映射规则和服务端响应顺序的实现


Posted in Python onApril 02, 2020

 1、django搜索路径

使用 import 语句时,Python 所查找的系统目录清单。

查看方式:

import sys
print sys.path

通常无需关心 Python 搜索路径的设置,Python 和 Django 会在后台自动帮你处理好。

2、url匹配模式

基本结构:

'^需要匹配的url字符串$'

PS:实际上最终完整的url串是http://根路径:端口号/需要匹配的url字符串

系统自动添加的部分'http://根路径:端口号/'

eg:url匹配模式:'^latest_books/$'

最终完整的url字符串:'http://127.0.0.1:8000/latest_books/'

1)^:匹配“子串头”。

eg:

'^latest_books/'
 'http://127.0.0.1:8000/latest_books/',
 'http://127.0.0.1:8000/latest_books/test1/',
 'http://127.0.0.1:8000/latest_books/test2/',
 'http://127.0.0.1:8000/latest_books/test1/aaa/'

都会被匹配上。    

 2)$:匹配“子串结尾”。

eg:

'latest_books/$'
'http://127.0.0.1:8000/latest_books/',
'http://127.0.0.1:8000/updir_1/latest_books/',
'http://127.0.0.1:8000/updir_2/latest_books/'

都会被匹配上。

 3)子串末尾是否包含'/'

默认情况下必须添加(django开发者的基本习惯),如果不添加将会出现如下情况:

from django.conf.urls import patterns, url, include

urlpatterns = patterns('',
(r'^latest_books$', 'django_web_app.views.latest_books'),
)

django中url映射规则和服务端响应顺序的实现

如果子串末尾不想包含'/',可在setting.py中添加设置:APPEND_SLASH=False

但是必须安装了CommonMiddleware才会起作用。

4)手动配置网站“根目录”

在不手动配置网站“根目录”对应“视图函数”的情况下,会出现如下情况:

django中url映射规则和服务端响应顺序的实现

手动配置“根目录”对应“视图函数”:

a)urls.py

from django.conf.urls import patterns, url, include

urlpatterns = patterns('',
            (r'^$','django_web_app.views.home_page'),
            (r'^latest_books/$', 'django_web_app.views.latest_books'),
)

b)views.py

def home_page(request):
  return render_to_response('home_page.html')

c)home_page.html

<!DOCTYPE html>
<html>
<head>
  <title>my home page</title>
</head>
<body>
  <h1>This is home page, welcome !</h1>
</body>
</html>

运行结果:

django中url映射规则和服务端响应顺序的实现

附:正则表达式基础

django中url映射规则和服务端响应顺序的实现

3、服务端响应url请求的执行顺序

1)项目结构

django_web





__init__.py





settings.py





urls.py





wsgi.py


django_web_app





__init__.py





admin.py





models.py





tests.py





views.py


templates





home_page.html





latest_books.html


manage.py

2)执行顺序

a)启动服务端——python manage.py runserver

获取setting.py文件中的配置,主要包括:

url映射关系文件路径:

ROOT_URLCONF = 'django_web.urls'

页面文件模板路径:

TEMPLATE_DIRS = (
  os.path.join(BASE_DIR, 'templates'),
)

数据库配置:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'django_db',
    'USER': 'root',
    'PASSWORD': 'feng',
    'HOST': '127.0.0.1',
    'PORT': '3306',
  }
}

b)响应顺序

第一步:浏览器提交请求

http://127.0.0.1:8000/latest_books/

第二步:服务端根据请求的url在urls.py中进行匹配,并找到对应的“视图函数”

第三步:调用对应的“视图函数”

返回一个HttpResponse对象

第四步:django转换HttpResponse对象为一个适合的HTTP response,并返回给页面进行显示

到此这篇关于django中url映射规则和服务端响应顺序的实现的文章就介绍到这了,更多相关django url映射规则和服务端响应顺序内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python生成器(Generator)详解
Apr 13 Python
Python数组定义方法
Apr 13 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
Sep 11 Python
Zabbix实现微信报警功能
Oct 09 Python
Python魔法方法详解
Feb 13 Python
python django下载大的csv文件实现方法分析
Jul 19 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 Python
python使用列表的最佳方案
Aug 12 Python
python各种excel写入方式的速度对比
Nov 10 Python
PyCharm2020.3.2安装超详细教程
Feb 08 Python
Python实现简单的猜单词
Jun 15 Python
Python实现从N个数中找到最大的K个数
Apr 02 #Python
Python任务调度利器之APScheduler详解
Apr 02 #Python
PyQt使用QPropertyAnimation开发简单动画
Apr 02 #Python
python topk()函数求最大和最小值实例
Apr 02 #Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
Apr 02 #Python
Python如何通过百度翻译API实现翻译功能
Apr 02 #Python
Python基于百度AI实现OCR文字识别
Apr 02 #Python
You might like
PHP导入Excel到MySQL的方法
2011/04/23 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
PHP中防止SQL注入方法详解
2014/12/25 PHP
php时间计算相关问题小结
2016/05/09 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
jquery、js操作checkbox全选反选
2014/03/12 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
jquery判断类型是不是number类型的实例代码
2016/10/07 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
详解React 条件渲染
2020/07/08 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
澳洲的服装老品牌:SABA
2018/02/06 全球购物
教师远程培训感言
2014/03/06 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
2014最新自愿离婚协议书范本
2014/11/19 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
结婚幸福感言
2015/08/01 职场文书
学生病假条怎么写
2015/08/17 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书