服务器处理响应的顺序,django中url映射规则和服务端响应顺序的实现

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'),

)

0ac6e8d1138188408ea3dc6eec6c5074.png

如果子串末尾不想包含'/',可在setting.py中添加设置:APPEND_SLASH=False

但是必须安装了CommonMiddleware才会起作用。

4)手动配置网站“根目录”

在不手动配置网站“根目录”对应“视图函数”的情况下,会出现如下情况:

10d519f9fb15e45822265d7c6e96b200.png

手动配置“根目录”对应“视图函数”:

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

my home page

This is home page, welcome !

运行结果:

0208e0f4d20c9b71ff937e26ed482350.png

附:正则表达式基础

7e5b671f989aedef832ae9fc89014862.png

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映射规则和服务端响应顺序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值