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简单实现基于SSL的IRC bot实例
Jun 15 Python
python将一组数分成每3个一组的实例
Nov 14 Python
Django REST framework视图的用法
Jan 16 Python
python英语单词测试小程序代码实例
Sep 09 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 Python
pandas中的数据去重处理的实现方法
Feb 10 Python
使用python的pyplot绘制函数实例
Feb 13 Python
解决Django no such table: django_session的问题
Apr 07 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
Apr 13 Python
jupyter 使用Pillow包显示图像时inline显示方式
Apr 24 Python
python可迭代对象去重实例
May 15 Python
python3实现简单飞机大战
Nov 29 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实现WEB动态网页静态
2006/10/09 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
2016/06/12 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
jQuery.datatables.js插件用法及api实例详解
2016/10/28 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
vue中添加mp3音频文件的方法
2018/03/02 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
Vue.js中的高级面试题及答案
2020/01/13 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
详解 javascript对象创建模式
2020/10/30 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
python实现socket端口重定向示例
2014/02/10 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
详解用python生成随机数的几种方法
2019/08/04 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
Python集合操作方法详解
2020/02/09 Python
Python装饰器结合递归原理解析
2020/07/02 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
CSS3 实现的加载动画
2020/12/07 HTML / CSS
Pandora西班牙官方商店:PandoraShop.es
2020/10/05 全球购物
自我介绍演讲稿范文
2014/08/21 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
2015中秋祝酒词
2015/08/12 职场文书
毕业设计工作总结
2015/08/14 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
详解python的异常捕获
2022/03/03 Python
2021年国漫热度排行前十,完美世界上榜,第四是美国动画作品
2022/03/18 国漫