视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
django中“url映射规则”和“服务端响应顺序”
2020-11-27 14:17:28 责编:小采
文档
 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'),

)

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

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

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

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

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

    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 !

    运行结果:

  附:正则表达式基础

  

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,并返回给页面进行显示

下载本文
显示全文
专题