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 14 Python
python轻松实现代码编码格式转换
Mar 26 Python
在CentOS6上安装Python2.7的解决方法
Jan 09 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
Python实现的寻找前5个默尼森数算法示例
Mar 25 Python
浅析PHP与Python进行数据交互
May 15 Python
解决python打不开文件(文件不存在)的问题
Feb 18 Python
Python3实现的判断环形链表算法示例
Mar 07 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
Python二次规划和线性规划使用实例
Dec 09 Python
浅谈django channels 路由误导
May 28 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
Jun 03 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
基于mysql的bbs设计(三)
2006/10/09 PHP
坏狼php学习 计数器实例代码
2008/06/15 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
javascript字符串拼接的效率问题
2010/12/25 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
深入解答关于Python的11道基本面试题
2017/04/01 Python
简述Python2与Python3的不同点
2018/01/21 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
Django 使用logging打印日志的实例
2018/04/28 Python
使用python快速在局域网内搭建http传输文件服务的方法
2019/11/14 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
中学自我评价
2014/01/31 职场文书
学习标兵获奖感言
2014/02/20 职场文书
商学院大学生求职的自我评价
2014/03/12 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
邀请函范文
2015/02/02 职场文书
财务负责人岗位职责
2015/02/03 职场文书
建党伟业观后感
2015/06/01 职场文书
人民的好儿女观后感
2015/06/18 职场文书
工作简报格式范文
2015/07/21 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
KVM基础命令详解
2022/04/30 Servers
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS