Djngo_2.0_URL映射到视图

视图views.py
from django.http import HttpResponse # 从http模块导入HttpRsponse 包
import datetime # 导入模块 python 自带的标准库
def current_datetime(request): # 定义一个函数(方法)
  now=datetime.datetime.now() # 保存当天时间变量
  html="<html><body>It is now %s.</body></html>" % now" #一段不合法的html
  return HttpResponse(html) #返回响应httpResponse 对象

将 URL 映射到视图(静态URL)

Djnao如何把请求转发到视图,也就是url 映射是那个函数。

URLconf 就像是 Django 所支撑网站的目录。它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。你就是以这种方式告诉 Django,对于这个 URL 调用这段代码,对于那个 URL 调用那段代码。但必须记住的是视图函数必须位于 Python 搜索路径之中。

url 创建项目的时候 就创建好的,内容如下。

from django.conf.urls.defaults import * 
# 第一行从 django.conf.urls.defaults 模块引入了所有的对象,其中包括了叫做 patterns 的函数 urlpatterns = patterns('',
# 第二行调用 patterns() 函数并将返回结果保存到 urlpatterns 变量。 
patterns() 函数只传入了一个空字符串参数。其他代码行都被注释掉了。
(该字符串可用作视图函数的通用前缀,但目前我们将略过这种高级用法。)
# Uncomment this for admin: # (r'^admin/', include('django.contrib.admin.urls')), )

  当前应该注意是 urlpatterns 变量, Django 期望能从 ROOT_URLCONF 模块中找到它。该变量定义了 URL 以及用于处理这些 URL 的代码之间的映射关系。

默认情况下,URLconf 所有内容都被注释起来了——Django 应用程序还是白版一块。(旁注:这也就是上一章中 Django 显示“It worked!”页面的原因。如果 URLconf 为空,Django 会认定你才创建好新项目,因此也就显示那种信息。)

url 映射视图

from django.conf.urls.defaults import *
from mysite.views import current_datetime

urlpatterns = patterns('',
    (r'^time/$', current_datetime),
)

简单来说,我们只是告诉 Django,所有指向 URL /time/ 的请求都应由 current_datetime 这个视图函数来处理。

注意在这儿的时候 不是函数调用,而是将函数作为对象传递,像变量一样传递。

current_datetime”就是一个变量,”current_datetime()“就是一个函数的调用,显然例子中是当做变量传递的.

最后传递给了patterns()函数

 

命令 python manage.py runserver 从同一目录载入文件 settings.py 。 该文件包含了这个特定的Django实例所有的各种可选配置,其中一个最重要的配置就是 ROOT_URLCONF 。 ROOT_URLCONF 告诉Django哪个Python模块应该用作本网站的 URLconf。

还记得 django-admin.py startproject 创建的文件 settings.py 和 urls.py 吗? 这是系统自动生成的 settings.py 里 ROOT_URLCONF 默认设置是 urls.py 。1

当访问 URL /time/ 时,Django 根据 ROOT_URLCONF 的设置装载 URLconf 。 然后按顺序逐个匹配URLconf里的URLpatterns,直到找到一个匹配的。当找到这个匹配 的URLpatterns就调用相关联的view函数,并把 HttpRequest 对象作为第一个参数。

 

posted @ 2019-05-10 11:12  Xingtxx  阅读(222)  评论(0编辑  收藏  举报