1、URL

1.1、URL-结构

定义:即统一资源定位符 Uniform Resource Locator
作用:用来表示互联网上某个资源的地址
URL的一般语法格式为(注意:[ ]代表其中的内容可以省略)

URL的一般语法

  1. protocol://hostname[:port]/path[?query][#fragment]
  • 协议:http、https、file 等
  • 主机名:IP地址(域名)
  • 端口:http默认端口80
  • 路由:具体定位
  • 查询字符串:通常是给服务端发请求时,传递参数数据使用
  • 锚点:快速定位到网页的某个标题栏

    protocol(协议)

  • http://tts.tmooc.cn

  • http通过HTTP访问该资源。格式http://
  • https通安全的HTTPS访问该资源。格式https://
  • file资源是本地计算机上的文件。格式file://

    hostname(主机名)

  • 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=657421&version=AID999**

  • 可选,用于给动态网页传递参数,可以有多个参数,用“&”符号隔开
  • 每个参数的名和值用“=”符号隔开

    fragment(信息片段/锚点)

  • version=AID999#subject

  • 字符串,用于指定网络资源中的片段。
  • 例如一个网页中有多个名词解释,可以使用fragment直接定位到某一个名词解释

    2、Django如何处理URL的请求

    2.1、处理URL请求

    2.1.1、浏览器-地址栏-请求

  • 浏览器-地址栏输入 -> http://127.0.0.1:8000/index

1、Django从配置文件中根据 ROOT_URLCONF 找到 主路由文件;
默认情况下,该文件在项目同名目录下的urls.py;
例如 thz_django/thz_django/urls.py

2、Django加载主路由文件中的 urlpatterns 变量 [包含很多路由的数组]
3、依次匹配 urlpatterns 中的 path ,匹配到第一个合适的中断后续匹配
4、匹配成功 - 调用对应的视图函数处理请求,返回响应
5、匹配失败 - 返回404响应

2.2、主路由

  • Django加载主路由文件(urls.py)中的 urlpatterns 变量 [包含很多路由的数组]
  • 依次匹配 urlpatterns 中的 path ,匹配到第一个合适的中断后续匹配
  • 匹配成功 - 调用对应的视图函数处理请求,返回响应
  • 匹配失败 - 返回404响应

    2.3、视图函数

    视图函数是用于接收一个浏览器请求(HttpRequest对象)并通过HttpResponse对象返回响应的函数。
    此函数可以接收浏览器请求并根据业务逻辑返回相应的响应内容给浏览器。
    语法:
    1. def xxx_view(request,[其它参数...]:
    2. return HttpResponse对象