链条传动

砥砺前行,不忘初心!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
路由系统
    project:
        django-admin startproject mysite
        cd mysite
        python3 manage.py startapp app01

    mysite
        mysite
            - urls.py
            #路由系统
            urlpatterns = [
                url(r'^admin/', admin.site.urls),
                url(r'^index/', views.index),
                url(r'^login/(\d+)/(\d+)/', views.login),    # 后面正则表达式匹配的内容作为参数传入函数中,多个参数按顺序传入
                url(r'^page/(?P<p1>\d+)/(?P<x2>\d+)/', views.page), # ?P<xxx>:为传入的参数取名xxx,为参数取名后,传入参数时函数的参数名就为这里定义的。函数中的参数可以不按顺序传。

    普通关系:url(r'^index/', views.index),
        /index/ -> 函数
        /login/ -> 函数
        ...
        # 反射:------可以基于此做自动路由:http://www.cnblogs.com/wupeiqi/articles/5237704.html
            /(\w+)/(\w+)
            /home/index
            => 导入:home模块,getattr(index)  fun()

    动态关系:
        url(r'^login/(\d+)/(\d+)/', views.index),
        /login/(\d+)/(\d+)/  -> index(request, n, x)  #参数可以任意取名,参数传入是按顺序的

        url(r'^page/(?P<p1>\d+)/(?P<x2>\d+)/', views.page),
        /page/(?P<p1>\d+)/(?P<x2>\d+)/  -> page(request, p1, x2)   # 按照url中的名字来传参,函数中的参数名必须和url中定义的名一样。可以不按顺序来传参





路由分发:
    mysite
        mysite
            - urls.py
                from django.conf.urls import url, include
                from django.contrib import admin
                # 路由系统
                urlpatterns = [
                    url(r'^admin/', admin.site.urls),
                    url(r'^web/', include('app01.urls')),   #所有访问/web/的url都转到app01.urls.py来处理
                ]

        app01
            - urls.py  # 自己创建,用来处理mysite.urls.py转过来的url
                from django.conf.urls import url
                from app01 import views
                # 路由系统
                urlpatterns = [
                    url(r'^index/(\d+)/', views.index),
                    url(r'^detail/(\d+)/', views.detail),
                ]

 

posted on 2017-01-05 16:48  链条君  阅读(182)  评论(0编辑  收藏  举报