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群发邮件实例代码
Jan 03 Python
python实现在pickling的时候压缩的方法
Sep 25 Python
python实现将pvr格式转换成pvr.ccz的方法
Apr 28 Python
浅析python实现scrapy定时执行爬虫
Mar 04 Python
Python中的函数作用域
May 07 Python
django 使用 request 获取浏览器发送的参数示例代码
Jun 11 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
pd.DataFrame统计各列数值多少的实例
Dec 05 Python
用Python进行websocket接口测试
Oct 16 Python
浅析python连接数据库的重要事项
Feb 22 Python
Python基础之常用库常用方法整理
Apr 30 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
JavaScript 中的replace方法说明
2007/04/13 Javascript
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
JavaScript 对象、函数和继承
2009/07/07 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
2016/05/07 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
对于Python编程中一些重用与缩减的建议
2015/04/14 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
Python流程控制 if else实现解析
2019/09/02 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
Python如何测试stdout输出
2020/08/10 Python
python实现逻辑回归的示例
2020/10/09 Python
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
大学生自我鉴定评语
2014/01/27 职场文书
区优秀教师事迹材料
2014/02/10 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
工程资料员岗位职责
2014/03/10 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android