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中处理字符串之isalpha()方法的使用
May 18 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
May 21 Python
django基础之数据库操作方法(详解)
May 24 Python
python入门教程 python入门神图一张
Mar 05 Python
使用Python来开发微信功能
Jun 13 Python
对Django外键关系的描述
Jul 26 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
pycharm无法导入本地模块的解决方式
Feb 12 Python
TFRecord文件查看包含的所有Features代码
Feb 17 Python
Django实现将一个字典传到前端显示出来
Apr 03 Python
Python一些基本的图像操作和处理总结
Jun 23 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
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
PHP使用mysqldump命令导出数据库
2015/04/14 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
JavaScript 题型问答有答案参考
2010/02/17 Javascript
javascript验证上传文件的类型限制必须为某些格式
2013/11/14 Javascript
jQuery循环动画与获取组件尺寸的方法
2015/02/02 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
python每次处理固定个数的字符的方法总结
2013/01/29 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
python3中rank函数的用法
2019/11/27 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
Python中logger日志模块详解
2020/08/04 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
初中校园广播稿
2014/02/02 职场文书
四年大学自我鉴定
2014/02/17 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
农村党支部承诺书
2015/04/30 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书