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中字典(Dictionary)用法实例详解
May 30 Python
Python基于PycURL实现POST的方法
Jul 25 Python
python实现中文转换url编码的方法
Jun 14 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
Python自动发邮件脚本
Mar 31 Python
分析python切片原理和方法
Dec 19 Python
Python 2.7中文显示与处理方法
Jul 16 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
用python求一重积分和二重积分的例子
Dec 06 Python
Python爬虫爬取煎蛋网图片代码实例
Dec 16 Python
python实现tail -f 功能
Jan 17 Python
带你学习Python如何实现回归树模型
Jul 16 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
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
在命令行下运行PHP脚本[带参数]的方法
2010/01/22 PHP
php地址引用(php地址引用的效率问题)
2012/03/23 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
php截取视频指定帧为图片
2016/05/16 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python中的zipfile模块使用详解
2015/06/25 Python
浅谈Python中函数的参数传递
2016/06/21 Python
TensorFlow如何实现反向传播
2018/02/06 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
如何在mac版pycharm选择python版本
2020/07/21 Python
python文件排序的方法总结
2020/09/13 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
Hotels.com拉丁美洲:从豪华酒店到经济型酒店的预定优惠和折扣
2019/12/09 全球购物
工商学院毕业生自荐信
2013/11/12 职场文书
网上商城创业计划书范文
2014/01/31 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
大学生毕业求职信
2014/06/12 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
会计主管岗位职责
2015/04/02 职场文书
接待员岗位职责范本
2015/04/15 职场文书
签证扫盲贴,41个常见签证知识,需要的拿走
2019/08/09 职场文书