django基础 --- url

2016-12-08  本文已影响0人  梦想做小猿

基础

一: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

  1. 在project的url文件中配置
url(r'^books/',include('books.urls')),
  1. 在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函数

上一篇下一篇

猜你喜欢

热点阅读