一、URL结构
  • 定义:即统一资源定位符 Uniform Resource Locator

  • 作用:用来表示互联网上某个资源的地址

  • URL的一般语法格式为【注:[]代表其中的内容可以省略】:

    格式:protocol://hostname[:port]/path[?query][#fragment]

    例如:http://tts.tmooc.cn/video/showVideo?menuId=657421&version=AID999#subject

    • protocol:协议 —— http://tts.tmooc.cn
      • http 通过HTTP 访问该资源。格式:http://
      • https 通过安全的HTTPS访问该资源。格式:https://
      • file 资源是本地计算机上的文件。格式:file:///
    • hostname:主机地址 / 域名 / IP —— http://tts.tmooc.cn
      • 是指存放资源的服务器的域名系统(DNS)主机名、域名或者IP地址
    • port:端口号 —— http://tts.tmooc.cn:80
      • 整数,可选,省略时使用方案的默认端口
      • 各种传输协议都有默认的端口号,如http的默认端口为80
    • path:路径 / 路由地址 —— http://tts.tmooc.cn/video/showVideo
      • 由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。路由地址决定了服务器端如何处理这个请求
    • query:查询字符串 —— http://tts.tmooc.cn/video/showVideo?menuId=6574218&version=AID999
      • 可选,用于给动态网页传递参数,通过"?"符号与前面内容分割
      • 可有多个参数,用"&“符号隔开,每个参数的名和值用”="符号隔开
    • fragment:锚点 / 信息片段 —— http://tts.tmooc.cn/video/showVideo?menuId=6574218&version=AID999#subject
      • 字符串,用于指定网络资源中的片段。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释
二、Django处理URL请求

浏览器 地址栏 → http://127.0.0.1:8000/page/2003/

  1. Django从配置文件中根据ROOT_URLCONF找到主路由文件;默认情况下,该文件在项目同名目录下的urls;例如:mysite1/mysite1/urls.py
  2. Django加载主路由文件中的urlpatterns变量【包含很多路由的数组】
  3. 依次匹配urlpatterns中的path,匹配到第一个合适的后中断后续匹配
  4. 匹配成功 — 调用对应的视图函数处理请求,返回响应
  5. 匹配失败 — 返回404相响应

例如:主路由 urls.py 样例

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('page/2003/',views.page_2003),
    path('page/2004/',views.page_2004),
]
三、视图函数
  • 视图函数是用于接收一个浏览器请求(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)
    
  • 测试

    03. Django基础:URL和视图函数_django

    03. Django基础:URL和视图函数_字符串_02