Django--urls.py路由配置详解

urls.py是url分发器,路由配置文件:在这里面咱们会构建起网站的目录
( 简单来讲咱们要作的事就是告诉Django,对于某段url该调用哪段代码 )
配置url的方式:(列表,推荐方式)
urlpatterns = [
    url ( 正则表达式,view函数,传递给视图的参数, 别名(命名空间),前缀 ),
    url ( 正则表达式,view函数,传递给视图的参数, 别名(命名空间),前缀 ),
    url ( r'^hello/$', v1.hello, {'a': 123}, name='hello' ),
]

一、建立一个项目:django-admin startproject DataHandel

二、建立一个APP:python manage.py startapp mydata ( settings.py -> INSTALLED_APPS元组下添加 'mydata', )

三、在APP的根目录下建立名叫Templates的目录 -> 在Templates目录下建立以APP为名称的目录 -> 存放全部的html页面

四、路由配置:
方法一:用户访问http://127.0.0.1:8000/index 而后后端使用index()函数处理
  ->DataHandel/urls.py内容以下:( 在urlpatterns里写入一条url与处理函数的映射关系 )
    from django.conf.urls import url
    from django.contrib import admin
    from mydata import views
    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^index/$', views.index),
    ]

  ->mydata/views.py内容以下:( 在app下的views.py里添加处理函数 )
    from django.shortcuts import render
    from django.http import HttpResponse
    from . import models
    def index(request):
        # articles = models.Article.objects.all()
        # return render(request, 'mydata/index.html', {'articles': articles})
        return render(request, 'mydata/index.html', {'articles': '222'})
  ->在Templates下建立index.html页面


方法二:若是一个项目下有不少的app就要根据不一样的app来分类不一样的url(用户访问:http://127.0.0.1/app01/index/)
  ->DataHandel/urls.py内容以下:( 在urls.py里映射到APP下的url )
    from django.conf.urls import include, url
    from django.contrib import admin
    urlpatterns = [
      url(r'^admin/', admin.site.urls),
      url(r'^mydata/', include('mydata.urls')),
    ]

  ->在mydata下建立一个urls.py文件内容以下:( 在APP里写入一条url与处理函数的映射关系 )
  from django.conf.urls import url
  from . import views
  urlpatterns = [
      url(r'^index/$', views.index),
      # url(r'^article/(?P<article_id>[0-9]+)$', views.article_page),
  ]

  ->mydata/views.py内容以下:( 在app下的views.py里添加处理函数 )
    from django.shortcuts import render
    from django.http import HttpResponse
    from . import models
    def index(request):
        # articles = models.Article.objects.all()
        # return render(request, 'mydata/index.html', {'articles': articles})
        return render(request, 'mydata/index.html', {'articles': '222'})
  ->在Templates下建立index.html页面