1 什么是URL
URL的构成
http://127.0.0.1:8000/hello/URL解释:schema://host[:port#]/path/.../[?query-string][#anchor]schema:指定使用的协议(例如:http, https, ftp)host:Http服务器的IP地址或者域名port:端口号,http默认是80端口path:访问资源的路径query-string:发送给http服务器的数据anchor:锚点#
urls.py文件的作用
可以理解为,当项目运行时,负责管理项目的文件settings.py调用指定的文件目录,该表会告诉项目有那些子网页需要运行,以及各有何种配置。
URL配置(URLconf)就像是Django所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表。以这样的方式告诉Django,对于那个URL调用那段代码。url的加载就是从配置文件中开始 ;

URL的特点
1 urlpatterns是固定的写法,它的值是列表;
2 我们在浏览器输入的路径会和urlpatterns中的每一项进行匹配,顺序是从左至右,从上至下;
3 匹配成功,则直接引导至响应的模块,如果匹配不成功则返回404。
urlpatterns = [url(r'^$ ' ,index),#匹配书籍列表信息的URL,调用对应的bookList视图url(r'^booklist/$' , bookList,name='index ' ),url(r' testproject/$ ' ,views.testproject,name='test'),]// 版本1url(r'^' ,include( " book.urls ',namespace= " book ' ))// 版本2
标识符和匹配规则介绍
开始思考思路就错了,不是因为元素,比如协议,端口号和IP不需要匹配从元素的特性出发,正确的思维应该是人为控制引导匹配;
3.urlpatterns中的元素,就是url3.urlatterns中的元素,就是urlurl的第一个参数,正则,r转义,^严格的开始,$严格的结尾4.我们在浏览器中哪些部分参与了正则匹配?Url的第一个参数,正则,r转义,^严格的开始,$严格的结尾4.我们在浏览器中哪些部分参与了正则匹配?http://ip:port/path/?key=valureHttp://ip:port/path/?key=valurehtttp://ip:port/path/admin/a=100/总结:协议,ip和端口,参数不参与匹配Htttp://ip:port/path/admin/a=100/总结:协议,IP和端口,参数不参与匹配// 这三个存在变化,协议有两种选择,IP随着用户访问地址的不同而不同// 端口号一般跟着协议走,或者自定义5.如果和当前的某一个匹配成功,则引导我们的子应用继续匹配,如果匹配成功,则停止匹配返回响应5.如果和当前的某一个匹配成功,则引导我们的子应用继续匹配,如果匹配成功,则停止匹配返回响应如果匹配不成功,则继承和后边的工程中的url的每一项继续进行匹配,直到匹配到每一项如果匹配不成功,则继承和后边的工程中的url的每一项继续进行匹配,直到匹配到每一项如果没有匹配到,返回404如果没有匹配到,返回404
子应用的构成元素
from django.conf inport urlfrom book.views inport indexurlpatterns=[url(r'^index/$',views.index) # url中的第一个参数就是:正则;第二个参数函数名。]
项目创建逻辑和关联文件的关系
01,先在子项目urls.py文件中,将访问路径定位到主项目文件的路径,同时指定除了admin以外的所有访问均导入到改子项目控件(所以从结构看,主项目与子项目的urls.py是父子关系)
在该步骤下,需要在子项目文件导入以及书写如下代码
from django.contrib import adminfrom django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('', include('TZ.urls')) # 除了对admin页面的访问以外均将请求导入到该页面]
在该步骤下,需要在主项目文件导入以及书写如下代码
urls.py示例代码
views.py示例代码

在项目中创建子项目
2 path和re_path
在测试项目中导入主项目的URL

在主项目views文件中创建内容

