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

时间:2021-05-23

1、django搜索路径

使用 import 语句时,Python 所查找的系统目录清单。

查看方式:

import sysprint 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, includeurlpatterns = patterns('',(r'^latest_books$', 'django_web_app.views.latest_books'),)

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

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

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

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

    

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

a)urls.py

from django.conf.urls import patterns, url, includeurlpatterns = 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>

运行结果:

    

附:正则表达式基础

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章