基础
一:urls.py示例
from django.conf.urls import include, url
from users import views as users_views
urlpatterns = [
url(r'^$',users_views.index), #http://xxxxx/
url(r'^add/(\d+)/(\d+)/$',users_views.add2), #http://xxxxx/3/5/
]
代码解释:
第一行:导入django相关库
第二行:导入APP里的views因为会有多个app造成views名相同,所有用as自定义别名
第二哥url:用正则匹配url
二:
...省略
url(r'^add/(\d+)/(\d+)/$',users_views.add2,name="add"),
...省略
解释:
url添加了一个name参数,作用是:
当HTML的<a>标签中引用url <a href="/add/a/b">,修改了url后需要在html中手动修改a标签,添加了工作复杂度。这里只需在a标签中应用name中的值即可,无参数:<a href="{% url 'add' %}">,有参数:<a href="{% url 'add' 3 5 %}">
三:定义url参数变量
url.py
...
url(r'add/(?P<id>\d*)/',user_views.add)
...
views.py
...
def add(request,id):
...
解释:
views中add函数的参数名必须为url中?P定义的名称,这样的好处是名称统一,当url多了不会混乱,多人协调开发更明了
四:定义默认值
...
url(r'add/(?P<id>\d*)/',user_views.add)
url(r'add/',user_views.add,{"id":111})
解释:
当访问/add时,会自动给id赋值为111
多app url拆分
例如有一个app为books
- 在project的url文件中配置
url(r'^books/',include('books.urls')),
- 在app books中添加urls文件,并编辑
from django.conf.urls import patterns, include, url
from books.views import book
urlpatterns = patterns('',
url(r'^index',book),
)
此时访问url: http://xxxxx/books/index 即可访问到books views中的book函数
网友评论