URL概述
- URL(Uniform Resource Locator)统一资源定位符,直白说就是浏览器输入网址
- 用以表示互联网上资源的地址
- URL的一般语法格式: protocol://hostname[:port]/path[?query][#fragment],
- 路由地址是由零或多个“/”符号隔开的字符串
- protocol:互联网协议(http/https/file)
- hostname:主机名,
- port:端口号
- path:资源地址,目录以
/
分隔 - ?:查询字符串,键值对格式(名和值用"="隔开),可有多个参数,用“&”号隔开
- #:网页锚点,fragment信息片段使用“#”为标志,例如一个网页中有多个名词,可使用fragment直接定位到该名词
示例:https://editor.csdn.net/md?articleId=1183661,https协议;域名editor.csdn.net需经过DNS域名解析成ip地址;md?articleId=118366361是资源所在位置,表示查询关键字是articleId,值是118366361
Django处理URL流程
这里以浏览器输入如下地址为例:http://127.0.0.1:8000/page/01
- 1.django从settings.py文件
ROOT_URLCONF
找到主路由文件 - 2.从主路由文件中加载
urlpatterns
变量,包含所有路由的数组 - 3.从前往后依次匹配
urlpatterns
中的地址,匹配到第一个合适的中断后续匹配 - 4.匹配成功则调用对应的视图函数,匹配失败则返回404
示例:
# urls.py
urlpatterns = [
path('admin/', admin.site.urls),
# 路由地址,对应视图函数
]
视图函数
- 简单来说,视图函数直接控制着网页中显示的内容和效果,用于接收一个浏览器请求(HttpRequest对象)并通过HttpResponse对象返回对应的函数。此函数可以接收浏览器请求并根据业务逻辑向浏览器返回响应内容。
- views.py语法
# 视图函数
def xxx_view(request[, 其他参数]):
return HttpResponse对象
- 视图函数第一个参数必须是request,返回对象必须是HttpResponse对象
示例
- 1.在<项目同名文件夹下>新建views.py文件,写好视图函数
# views.py
# 从django导入HttpResponse
from django.http import HttpResponse
# 定义一个视图函数
def page_01(request):
html = "<h1>这是第一个页面</h1>" # 页面内容
return HttpResponse(html)
- 2.在urls.py文件的的
urlpatterns
写好路由地址和对应试图函数
from django.contrib import admin
from django.urls import path
from . import views # 从当前目录导入写好的views.py文件
# 配置网址http://127.0.0.1:8000/page/01
urlpatterns = [
path('admin/', admin.site.urls),
path('page/01/', views.page_01), # views.page_01为该网址的试图函数,即views.py中的page_01函数
]
从上面可以看到,urls.py就是用来将网页地址和网页内容联系起来的桥梁,告诉外界通过什么样的网址可以找到对应的网页内容
- 3.
python manage.py runserver
启动服务,在浏览器输入http://127.0.0.1:8000/page/01访问