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'),
]
// 版本1
url(r'^' ,include( " book.urls ',namespace= " book ' ))
// 版本2
标识符和匹配规则介绍
开始思考思路就错了,不是因为元素,比如协议,端口号和IP不需要匹配从元素的特性出发,正确的思维应该是人为控制引导匹配;
3.urlpatterns中的元素,就是url
3.urlatterns中的元素,就是url
url的第一个参数,正则,r转义,^严格的开始,$严格的结尾4.我们在浏览器中哪些部分参与了正则匹配?
Url的第一个参数,正则,r转义,^严格的开始,$严格的结尾4.我们在浏览器中哪些部分参与了正则匹配?
http://ip:port/path/?key=valure
Http://ip:port/path/?key=valure
htttp://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 url
from book.views inport index
urlpatterns=[
url(r'^index/$',views.index) # url中的第一个参数就是:正则;第二个参数函数名。
]
项目创建逻辑和关联文件的关系
01,先在子项目urls.py文件中,将访问路径定位到主项目文件的路径,同时指定除了admin以外的所有访问均导入到改子项目控件(所以从结构看,主项目与子项目的urls.py是父子关系)
在该步骤下,需要在子项目文件导入以及书写如下代码
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('TZ.urls')) # 除了对admin页面的访问以外均将请求导入到该页面
]
在该步骤下,需要在主项目文件导入以及书写如下代码