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怎么学好python?
Oct 07 Python
Python Tkinter实现简易计算器功能
Jan 30 Python
python MySQLdb使用教程详解
Mar 20 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
Python GUI布局尺寸适配方法
Oct 11 Python
python 用下标截取字符串的实例
Dec 25 Python
Python测试模块doctest使用解析
Aug 10 Python
用Python批量把文件复制到另一个文件夹的实现方法
Aug 16 Python
numpy:找到指定元素的索引示例
Nov 26 Python
Python values()与itervalues()的用法详解
Nov 27 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 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中session变量的销毁
2014/02/27 PHP
php技巧小结【推荐】
2017/01/19 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
javascript fullscreen全屏实现代码
2009/04/09 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
用python删除java文件头上版权信息的方法
2014/07/31 Python
Python输出带颜色的字符串实例
2017/10/10 Python
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
python识别验证码图片实例详解
2020/02/17 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
python爬虫容易学吗
2020/06/02 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
python定义具名元组实例操作
2021/02/28 Python
英国文胸专家:AmpleBosom.com
2018/02/06 全球购物
奥巴马经典演讲稿
2014/09/13 职场文书
研究生导师推荐信
2015/03/25 职场文书
感谢师恩主题班会
2015/08/17 职场文书
创业计划书之网络外卖
2019/10/31 职场文书
sqlserver2017共享功能目录路径不可改的解决方法
2021/04/16 SQL Server
如何用Python搭建gRPC服务
2021/06/30 Python