Django:视图和URL配置

一、视图

1.在mysite文件夹下。创建views.py文件(文件名称没有特别的要求);

from django.http import HttpResponse
     def hello(request):
          return HttpResponse("Hello world")

2.改动mysite文件夹下的urls.py文件;

from django.conf.urls import url
from django.contrib import admin

from mysite.views import hello

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    url(r‘^hello/$‘, hello),
]

3.执行命令:python manage.py runserver。

在浏览器訪问http://127.0.0.1:8000/hello/;

4.你的URL申请在URLconf中未定义,“404错误”页面就会显示。它精确的告诉你Django调用在哪个URLconf及其包括的每一个模式。该页面仅仅会在调试模式(debug mode)下显示;

5.使用URL模式”^$“匹配站点根文件夹URL模式;

二、Django是怎样处理请求

1.当你执行python manage.py runserver,在manage.py同一个文件夹下查找名为setting.py的文件,该文件包括了关于全部Django项目的配置信息。

ROOT_URLCONF=‘mysite.urls‘#指向自己主动生产的urls.py

2.浏览器里敲http://127.0.0.1:8000/hello訪问时候,依据ROOT_URLCONF的设置装载URLconf,然后按顺序逐个匹配URLConf里面的URLpatterns,直到找到一个匹配的;

3.当找到这个匹配的URLpatterns就调用相关联的view函数,并把HttpRequest对象作为第一个參数;

4.Django转换成HttpResponse为一个适合的HTTP reponse,以Web page显示出来;

三、动态内容

1.在项目views.py中加入。例如以下视图:

from django.http import HttpResponse
import datetime

    def hello(request):
        return HttpResponse("Hello world")

    def current_datetime(request):
        now = datetime.datetime.now()
        html = "<html><body>It is now %s.</body></html>" % now
        return HttpResponse(html)

2.在项目urls.py中加入。例如以下配置:

from django.conf.urls import url
from django.contrib import admin

from mysite.views import hello , current_datetime

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    url(r‘^hello/$‘, hello),
    url(r‘^time/$‘, current_datetime),
]

3.又一次启动服务。訪问http://127.0.0.1:8000/time

4.松耦合原则,URL的定义和视图函数之间的松耦合。

四、动态URL

1.在项目views.py中加入。例如以下视图:

from django.http import HttpResponse , Http404
import datetime
... ...
def hours_ahead(request, offset):
    try:
        offset = int(offset)
    except ValueError:
        raise Http404()
    dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
    html = "<html><body>In %s hours(s), it will be %s.</body></html>" % (offset, dt)
    return HttpResponse(html)

2.在项目urls.py中加入。例如以下配置:

from django.conf.urls import url
from django.contrib import admin

from mysite.views import hello , current_datetime , hours_ahead

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    ... ...
    url(r‘^time/plus/(\d{1,2})/$‘, hours_ahead),
]

3.又一次启动服务。訪问http://127.0.0.1:8000/time/1

 

时间: 2024-10-10 15:25:42

Django:视图和URL配置的相关文章

Django -- 视图和URL配置

一个人行走的范围,就是他的世界:    -- 北岛<青灯> 一个人吟唱的语调,就是他的生活.    -- 小Q<小曲> ------------------------------------------------------------------------------------------------- 前一节我们建立了一个Django项目,这一节我们来了解视图和url的关系: [第一个视图 根目录] 当我们搭建好django时,urls.py内没有url,我们会看到一个

Django笔记 —— 高级视图和URL配置

最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其实我的所有笔记都是),并不会过于详细的讲解.因此如果有大家看不明白的地方,欢迎在我正版博客下留言,有时间的时候我很愿意来这里与大家探讨问题.(当然,不能是简简单单就可以百度到的问题-.-) 我所选用的教材是<The Django Book 2.0>,本节是第八章,高级视图和URL配置. 在基础部分

Django中的URL配置和模板

Django中的URL配置 : 实例: Python代码   urlpatterns = patterns('', # Example: # (r'^myweb/', include('myweb.foo.urls')), # Uncomment the admin/doc line below and add 'django.contrib.admindocs' # to INSTALLED_APPS to enable admin documentation: # (r'^admin/doc

视图的URL配置,找不到我设置的第一个Page

问题:视图的URL配置,找不到我设置的第一个Page 我的代码如下: 结果访问/test/时说找不到这个page 原因:patterns方法的参数有两个,一个是prefix,一个是参数元祖,详见下图,因为我的patterns里少加了一个空的'',它将我写的第一个url单过prefix参数了. 解决办法:在patterns中先加入一个参数'',如下图:

django book学习笔记——视图和URL配置

1.视图 一个视图就是Python的一个函数,每个视图函数至少要有一个参数,通常被叫作request. 这是一个触发这个视图.包含当前Web请求信息的对象,是类django.http.HttpRequest的一个实例.它返回一个HttpResponse实例.为了使一个Python的函数成为一个Django可识别的视图,它必须满足这两个条件.(也有例外) 例: from django.http import HttpResponse def hello(request):         retu

Django高级视图和URL配置

URLconf 技巧 URLconf没什么特别的,就象 Django中其它东西一样,它们只是 Python代码.你可以在几方面从中得到好处,正如下面所描述的. 流线型化(Streamlining)函数导入 看下这个 URLconf,它是建立在第三章的例子上: from django.conf.urls.defaults import * from mysite.views import current_datetime, hours_ahead, hours_behind, now_in_chi

Django 1.8_视图和URL配置

前情提要 学习了如何创建django项目,运行开发django服务器,并了解了mvc模式. 内容 VIEW URL 正则表达式 错误解析与寻求帮助 hello world.html dynamic_date.html dynamic_date_offset.html Django处理请求的过程 Helloword 创建一网页,打开即显示helloworld. 其中网页内容由视图生成,并配置URL. 在mysite/mysites下创建views.py并编辑 1 from django.http

Django框架1——视图和URL配置

三个命令 1.创建一个django项目 在cmd中:django-admin.py startproject project_name D:\python\django_site>django-admin startproject first_site 2.创建应用 python manage.py startapp app_name D:\python\django_site\first_site>python manage.py startapp app001 3.运行django项目 p

Djang学习笔记3视图和URL配置

1. 页面内容 : 一个网页通过一个视图函数(view function)来展示, 如何把它放到网站服务器中呢,通过url (定义在URLconf)中 View: 视图有时候非常简单都是完整的函数和导入声明 from django.http import HttpResponse def hello(request): return HttpResponse("Hello world") 首先,我们从 django.http 模块导入(import) HttpResponse 类.和

django1.8高级视图和URL配置读书笔记

一.在url配置中可以通过导入视图函数来将url模式和对应的函数对象进行映射,也可以通过字符串的形式进行映射.字符串包含应当是模块名.函数名的组合例如: 之前: from mysite import views urlpatterns = patterns('', (r'^hello/$', views.hello), (r'^time/$', views.current_datetime), (r'^time/plus/(d{1,2})/$', views.hours_ahead), ) 现在