美文网首页
4.django之路由

4.django之路由

作者: 马梦里 | 来源:发表于2017-12-05 09:28 被阅读0次

    路由的查找流程:

        在浏览器输入网址,那么项目下的路由就开始对网址进行匹配。r匹配网址开始,$匹配网址结尾,匹配合适,则调用相应的视图函数。
        项目路由的作用是分发应用路由,在项目路由里面进行初始匹配,也就是只匹配头部,头部正确,则继续到应用路由去匹配尾部。
        其实在模板里面定义的超链接,可以通过应用的命名空间namespace与路由名name来规定,直接按着这个查找,相率更高。

    1.blog/blog下的urls.py:

    from django.conf.urls import url, include
    from django.contrib import admin
    
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^', include('mamengli_blog.urls', namespace='mamengli_blog')),
    ]
    

        这里是项目下应用总的路由函数集合,include()函数有两个参数:
    1.'mamengli_blog.urls表示具体应用下,路径对应的视图函数集合;
    2.namespace='mamengli_blog,给这个应用的路由集合一个命名空间,方便查看。每个具体的路由,都应该有一个命名name,方便写超链接,而且改写路由的时候,只需要在urls.py里面给就行。

    2.应用下的路由

    from django.conf.urls import url
    from . import views
    
    urlpatterns = [
        url(r'index/$', views.index, name='index'),
        url(r'^category/(?P<category_name_slug>[\w\-]+)/$', views.index, name='page_list'),
    ]
    

    1.(?P<category_name_slug>[\w\-]+)是一个变量,变量名为category_name_slug,在对应的视图函数中,多加一个参数就可以获取这个变量值了(有几个参数,加几个变量)。
    那么,这个变量从何取值呢?从模板,从上一个视图函数,模板传值的方式在模板板块里面有讲到。

    相关文章

      网友评论

          本文标题:4.django之路由

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