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

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。