Django之URL与视图函数
1、URL-结构
- 定义:URL是Uniform Resource Locator的简写,统一资源定位符。
- 作用:用来表示互联网上某个资源的地址
- URL的一般语法格式(注:[]代表其中的内容可以省略):
protocol://hostname[:port]/path[?query][#fragment]
- protocol:代表的是访问的协议,一般为http或者https以及ftp等。
- hostname:是指存放资源的服务器的域名系统(DNS)主机名,域名或IP,比如www.baidu.com。
- port:端口号。省略时使用方案的默认端口,http的默认端口为80。
- path:查找路径。比如:www.jianshu.com/trending/now,后面的trending/now就是path。
有零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。路由地址决定了服务器端如何处理这个请求。 - query:查询字符串,比如:www.baidu.com/s?wd=python,?后面的wd=python就是查询字符串。
用于给动态页面传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。 - fragment:锚点,用于指定网络资源中的片段,例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。
2、处理URL请求
- 浏览器 地址栏 -> http://127.0.0.1:8000/page/2003/
1.Django从配置文件中根据ROOT_URLCONF找到主路由文件;默认情况下,该文件在项目同名目录下的urls;例如automateproject/automateproject/urls.py
2.Django加载主路由文件中的urlpatterns变量[包含很多路由的数组]
urlpatterns = [
path('admin/', admin.site.urls), # admin/ 路由 admin.site.urls 视图函数
]
3.依次匹配urlpatterns中的path,匹配到第一个合适的中断后续匹配
4.匹配成功-调用对应的视图函数处理请求,返回响应
5.匹配失败-返回404响应
3、视图函数
- 视图函数是用于接收一个浏览器请求(HttpRequest对象)并通过HttpResponse对象返回响应的函数。此函数可以接收浏览器请求并根据业务逻辑返回相应的响应内容给浏览器。
- 语法
def xxx_view(request[,其他参数...]):
return HttpResponse对象
- 视图函数示例
file:<项目同名文件夹下> /views.py
from django.http import HttpResponse
def page_2003_view(request):
html = "<h1>这是第一个页面</h1>"
return HttpResponse(html)