Django 学习手册-如何建立专案(3)
Tutorial Part 3
一.原理说明
view 为web page 的型式(type),在Django application中通常会放置不同的function来处理不同的需求以及在其中会使用某些特定的template来做为网页的呈现。
在我们的poll application中,我们会建立四个viewsPoll "archive" page -- 用来显示最新的pollsPoll "detail" page -- 用来显示poll question, with no result but with a form votePoll "results" page -- 用来显示特定poll 的resultsVote action -- handles voting for a particular choice in a particular poll.
在Django中,每一个view是由一个简单的python function表示
二.设计你的URLs
首先我们要来设计URL的结构,你可以藉由建立一个URLconfs的python module来实现。 URLconfs可用来说明python code如何透过URL在Django中运作。当一个使用者发出一个Django-powered page的request需求时,系统将参考ROOT_URLCONF的设定(由python dotted syntax组成)。Django将URL设定的module-level variable 称为urlpatterns
首先我们要来设计URL的结构,你可以藉由建立一个URLconfs的python module来实现。 URLconfs可用来说明python code如何透过URL在Django中运作。当一个使用者发出一个Django-powered page的request需求时,系统将参考ROOT_URLCONF的设定(由python dotted syntax组成)。Django将URL设定的module-level variable 称为urlpatterns
regular expression, Python callback function [, optional dictionary])之后请修改mysite/urls.py档为
from django.conf.urls.defaults import * from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', (r'^polls/$', 'mysite.polls.views.index'), (r'^polls/(?P<poll_id>\d+)/$', 'mysite.polls.views.detail'), (r'^polls/(?P<poll_id>\d+)/results/$', 'mysite.polls.views.results'), (r'^polls/(?P<poll_id>\d+)/vote/$', 'mysite.polls.views.vote'), (r'^admin/', include(admin.site.urls)), )
当我们在输入网址http://localhost:8000/polls/23/时,会发生网页错误,由regular expression可知道,所对应到的是mysite.polls.views.detail,在寻找mysite/polls/views .py的档案后,并无detail()的function存在,此function的格式应该如下
detail(request=<HttpRequest object>, poll_id='23')
poll_id=23是由 (?P<poll_id>\d+) 所得到。
没有评论:
发表评论