美文网首页
django基础 --- url

django基础 --- url

作者: 梦想做小猿 | 来源:发表于2016-12-08 16:37 被阅读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函数

    相关文章

      网友评论

          本文标题:django基础 --- url

          本文链接:https://www.haomeiwen.com/subject/gajsmttx.html