1.urlconf中url和视图建立联系的三种写法:
传入函数对象:
<span style="font-size:18px;">from django.conf.urls import patterns,url
from mysite.views import hello
urlpatterns = patters('',
url(r'^hello/$',hello),
)</span>
<span style="font-size:18px;">from django.conf.urls import patterns,url
from mysite import views
urlpatterns = patters('',
url(r'^hello/$', views.hello),
)</span>
传入一个包含模块名和函数名的字符串:
<span style="font-size:18px;">from django.conf.urls import patterns,url
urlpatterns = patters('',
url(r'^hello/$', 'mysite.views.hello'),
)</span>
2.在python的正则表达式中,命名的正则表达式的语法是(?P<name>pattern),name是组的名字,pattern是匹配的某个模式
使用无名组,向视图函数传递位置参数:
<span style="font-size:18px;">from django.conf.urls import patterns,url
from mysite import views
urlpatterns = patterns('',
url(r'^hello/(\d+)/$',views.hello),
url(r'^search/(\w+)/$', views.search),
)</span>
使用命名组,向视图函数传递关键字参数:
<span style="font-size:18px;">from django.conf.urls import url,patterns
from mysite import views
urlpatterns = patterns('',
url(r'^(?P<votes>\d+)/vote/$', views.votes),
) </span>
3.向视图函数传递额外的参数
from django.conf.urls import url,patterns
from mysite import views
urlpatterns = patterns('',
url(r'^hello/$', views.hello,{‘template_name’:‘template1’})
)
views.
from django.shortcuts import render_to_response
from models import Book
def hello(request, template_name):
booklist = Book.objects.filter(name__contains='apress')
return render_to_response(template_name,{'booklist':booklist})