Django-2-庖丁解牛-URL和视图函数

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访问
    在这里插入图片描述

参考

达内教育

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值