Django自学笔记 2-1 URL与View关系

URL 语法及示例解读 本文是对《HTTP权威指南》28页内容的整理,主要参考了博文URL语法。 阅读详情

————总目录——前言——框架版本————

======================= 大爽歌作,made by big shuang =======================

一 URL与View关系

参考:how-django-processes-a-request

1- Django处理请求(request)过程

简单概括如下:

  1. 根据ROOT_URLCONF(位于setting.py)选择对应的url解析模块(默认是urls.py)
  2. 加载上一步找到的url解析模块(默认是urls.py)查找变量urlpatterns
  3. 按顺序遍历urlpatterns里面的urlpattern,返回第一个匹配requested URL的urlpattern
  4. 上一步匹配成功,Django就会导入并调用urlpattern里面对应的视图view(一般在views.py里面)
  5. 第三步没有找到匹配的,或者寻找的过程中有异常抛出,Django会调用适当的错误处理视图(见error-handling)

上面步骤的一些细节补充:

  1. urlpattern: 变量urlpatterns里面的元素,称作urlpattern,urlpattern可以通过django.urls.path()函数或django.urls.re_path()函数获得,例如
urlpatterns = [
    path('articles/2003/', views.special_case_2003),
    re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
    re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
    ......
]
  1. 有一些老的教程资源里面urlpattern写成url('articles/2003/', views.special_case_2003)[在开头会from django.conf.urls import url],
    这种写法不推荐使用,django.conf.urls.url()是django.urls.re_path()的别名。在将来的版本中,它可能会被弃用.(出自https://docs.djangoproject.com/en/2.2/ref/urls/#url)
  2. 视图view,可以看做一个简单的Python函数,这个方法会根据一个 HttpRequest实例(对应输入参数request),返回一个HttpResponse实例。
    request为视图view一定要有的参数,根据需要,urlpattern也有可能给视图view添加其他输入参数。

PS: 这些细节我们也会在本章后面的一些小节里面详细的讲下

2- 代码示例

urls.py(项目文件夹下)

from django.urls import path
from my_app import views

urlpatterns = [
    path('hello/', views.hello),
]

views.py(应用my_app文件夹下)

from django.http.response import HttpResponse

def hello(request):
    return HttpResponse("Hello")

此时运行项目后,在浏览器打开http://127.0.0.1:8000/hello/页面如下
在这里插入图片描述

3- 示例详细过程分析

浏览器访问http://127.0.0.1:8000/hello/的具体步骤如下
首先浏览器部分做的是:

  1. 127.0.0.1:8000/:浏览器通过127.0.0.1这个域名找到对应的服务器(127.0.0.1表示的是本地服务器),
    给这个服务器上8000这个端口号发送访问请求
    hello/: 路径,用于给Django程序匹配urlpattern

Django后台收到这个访问请求后:

  1. Django程序首先去找根据ROOT_URLCONF(位于setting.py)选择对应的url解析模块(默认是urls.py)
  2. 加载上一步找到的url解析模块(默认是urls.py)查找变量urlpatterns
  3. 按顺序遍历urlpatterns里面的urlpattern,第一个urlpatternpath('hello/', views.hello),匹配requested URL里的hello/
  4. 匹配成功,Django就会导入并调用urlpattern里面对应的视图view(views.py里的hello方法),返回给浏览器一个HttpResponse("Hello")

参考:https://developer.mozilla.org/zh-CN/docs/Learn/Common_questions/What_is_a_URL

从零开始的Django框架入门到实战教程(内含实战实例) - 01 创建项目与app、加入静态文件、模板语法介绍(学习笔记)   在这部分,我将从Django的安装讲起,从创建项目到制作一个简单的页面(跑通流程),再到加入网页,介绍Django的模板语法。最后利用所学完成一个小的网页展示。   1. 安装Django 2. 创建项目(startproject) 2.1 创建项目 2.2 介绍项目文件 2.3 APP(startapp) 3. 走通流程(urls, views, runserver) 3.1 第一个页面 3.2 多个页面 4. 网页 4.1 加入网页(templates, render) 4.2加入图片、css、js 阅读详情

相关推荐

Django实战之增加链接

书接 https://blog.youkuaiyun.com/weixin_32759777/article/details/104719760 上面完成的功能 首页 分类列表页面 标签列表页面 博文详情页面 还有 搜索结果页面 作者列表页面 侧边栏的热门文章 文章访问统计 友情链接页面 评论模块 增加搜索和作者过滤 需求 根据搜索关键词搜索文章和展示指定作者的文章列表 这个任务和前面的类似都需要根据某种条...

东方佑 2万+

urlview 开源项目教程

urlview 开源项目教程 项目介绍 urlview 是一个用于从文本中提取和显示 URL 的实用程序。它可以在终端中运行,帮助用户快速识别和访问文本中的链接。该项目主要用于 Unix 和 Linux 系统,支持多种文本格式。 项目快速启动 安装 首先,确保你的系统已经安装了 git 和 make。然后,通过以下命令克隆并安装 urlview: git clone https://github....

gitblog_00417的博客 943

Django全栈开发自学实战教程

在Django中,每一个数据库表都对应一个继承自的Python类。比如你想建一张“文章”表,传统方式要写:而在Django里,只需这样写:就这么简单!没有SQL,只有Python类和属性。当你运行迁移命令后,Django会自动生成上述SQL并执行,甚至连id主键都不用你显式声明——它会自动添加。🤯 惊喜吗?这才是真正的“快速开发”。而且更厉害的是,一旦模型定义完成,你就可以用非常自然的方式进行查询:# 获取所有文章# 查询某作者的文章# 按时间倒序排列。

weixin_35752233的博客 593

一个完整的URL

一个完整的URL一个完整的URL举例一个完整的URL组成部分及解释 一个完整的URL举例     http://www.wgdhome.com:8080/file/index.asp?username=wgd&password=123#login 一个完整的URL组成部分及解释 1、协议部分     该URL的协议部分就是“http:”,这代表网页使用的是http协议。在Internet中可以使用多种协议,如HTTP,F

wangguodong1993的博客 4440

立创开源:基于STM32F103与ADS1256的六维力传感器低成本实现方案

本文详细介绍了一种基于STM32F103微控制器与ADS1256高精度ADC的低成本六维力传感器实现方案。该方案通过3D打印的六梁弹性体结构结合应变片,将多维力信号转换为电信号,并由24位ADC进行高精度采集。文章涵盖了硬件选型、电路设计、嵌入式软件驱动及上位机数据可视化全流程,为机器人、精密测量等领域的爱好者提供了一个可复现的开源实践参考。

weixin_34718952的博客 390

单像素成像技术原理与Matlab仿真实现

傅里叶变换是数字图像处理的核心数学工具,它将图像从空间域转换到频率域表示。基于傅里叶频谱分析的成像技术通过采集关键频率分量实现图像重建,这种原理催生了单像素成像这一创新技术。单像素成像利用空间光调制器和单个探测器直接测量傅里叶系数,结合压缩感知算法实现高效成像,在红外、太赫兹等特殊波段展现出独特优势。通过Matlab仿真可以验证傅里叶基测量矩阵的构建、压缩感知重建等关键技术环节,为实际系统开发提供理论基础。该技术在弱光环境成像、显微观测等领域具有重要应用价值,其低成本特性也大大降低了特殊波段成像的门槛。

weixin_29061425的博客 345

URL详解

一:URL举例 就以下面这个URL为例,介绍下普通URL的各部分组成 http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name 从上面的URL可以看出,一个完整的URL包括以下几部分: 1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。

tao546377318的博客 2万+

手把手教你调试eDP接口:Main Link信号异常、AUXCH通信失败怎么办?

本文提供了一份详尽的eDP接口调试实战指南,重点解决Main Link信号异常与AUXCH通信失败两大核心难题。文章系统介绍了从工具准备、信号完整性分析(眼图、抖动测量)到AUXCH协议解码、HPD信号检查的完整排查流程,并分享了链路训练诊断与常见避坑技巧,帮助硬件工程师高效定位并解决显示问题。

Jerry的专栏 830

Django自学笔记 2-2 URL详细匹配规则

————总目录——前言——框架版本———— ======================= 大爽歌作,made by big shuang ======================= 本文目录二 URL详细匹配规则1- urlpattern 二 URL详细匹配规则 本章第一节中我们简单介绍了URL与View关系 简单概括来说,网页请求的url会通过urls.py里面的urlpatterns列表中的urlpattern来匹配对应的view方法,然后view方法会返回一个HttpResponse 过程.

大爽老师的博客 1883

告别命令行恐惧!用nTopology可视化工具5分钟搞定三维Voronoi泡沫建模

本文介绍如何利用nTopology可视化工具快速生成三维Voronoi泡沫结构,无需编程即可完成复杂建模。Voronoi结构在轻量化设计、能量吸收和生物医学等领域具有重要应用,传统命令行方法门槛较高。通过nTopology的四步流程,用户可在5分钟内创建仿真就绪模型,大幅提升设计效率。

weixin_30764771的博客 426

扩视机器视觉—Halcon机器视觉48个实战项目六(检测定位角度)

此项目halcon检测检测定位角度问题,并显示。

qq_21516871的博客 1094

【自学笔记/Django/2】Django中模板、视图和url的关系及模板继承

【自学笔记/Django/2】Django中模板、视图和url的关系及模板继承 备注: 1.自学Django中,打算将学习步骤记录下来,一来是个总结,二来方便以后查询。 2.本篇主要记录了完成Django的初始相关配置后,建立视图和模板以及配置路径 本篇是在上一篇【自学笔记/Django/1】Django新建与初始配置的基础上继续做的。 下面是基本的步骤: 建立模型models; 配置urls; 写视图views; 写模板html; 建立模型models 模型目前我自己基本已经设计好了,但是还没有跟

weixin_43338784的博客 383

请尽可能地详细说明一个VLA项目的立项训练到落地的全流程

一个机器人VLA项目的全流程是一个复杂的系统工程,它深度融合了机器人学 (Robotics)计算机视觉 (CV)和自然语言处理 (NLP)。其核心挑战在于高质量数据的获取和从仿真到现实的有效迁移。与纯粹的软件AI项目相比,它增加了硬件、物理交互和安全性的维度,但其最终能让AI走出虚拟世界、在物理世界中产生实际价值,这也是其巨大的魅力所在。

具身机器人和通用AI 303

Django自学笔记0-0 目录

本篇博客只有目录,正文内容在目录章节链接的博客里 除目录本身外,没有链接的章节,说明内容还没开始编辑 总目录 0-前言 —— 0-0 目录 —— 0-1 简介 —— 0-2 框架版本与相关工具 1 - 入门 —— 1-1 新建项目 —— 1-2 配置说明 —— 1-3 常用命令和常见问题 2 - URL与View —— 2-1 URL与View关系 —— 2-2 URL详细匹配规则 ...

大爽老师的博客 2258

YOLOv8改进:全网原创首发 | 新颖的多尺度卷积注意力(MSCA),即插即用,助力小目标检测 | NeurIPS2022

多尺度卷积注意力(MSCA),有效地提取上下文信息;1)作为注意力MSCA使用;

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 3844

Python 爬虫实战:抓取新闻网站上的新闻标题和内容

随着信息化的进展,新闻网站已经成为人们获取新闻和时事资讯的主要途径。许多新闻网站提供了丰富的内容,涵盖了社会、政治、科技、娱乐等多个领域。通过抓取新闻网站的内容,我们可以分析新闻的趋势,获取某一领域的最新动态,甚至为数据分析和机器学习提供数据支持。本文将详细介绍如何使用 Python 编写爬虫,抓取新闻网站上的新闻标题和内容。requests:发送 HTTP 请求,获取页面内容。:解析 HTML 页面并提取数据。Selenium:抓取动态加载的网页内容。新闻API。

2201_76125261的博客 3407

Django自学之 第一个Django实例,views.py与urls.py的关系

环境 本人使用的工具是pycharm,环境已经搭建好,不会使用的童鞋参考一下 https://blog.youkuaiyun.com/Sunshine_ZCC/article/details/73919169 使用Django编写第一个页面 1.创建一个project和app 首先打开我们的工具pycharm,点击New Project 继续点击左侧Django,修改untitled1为你想命...

songlh1234的博客 3041

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

自学django学习小记1

day1学习django小结 1、级联,一对一,一对多,多对多,外键,主键 2、基本流程:django创建项目/切换目录/manage创建APP/打开pycharm/激活APP/切换语言 时区/配置连接数据库/init添加兼容数据库/打开MySQL/生成迁移文件/迁移 3、模型数据类型,CharField、fileField存图片的路径,ImageField对图片进行检验, 字段就是模型的对象,字...

qq_38136275的博客 235

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

自学Django Day2 (URL和视图函数)

URL/视图函数/path函数

guo16ding的博客 172

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

自学Django Day1

Django的安装及项目配置

guo16ding的博客 192

Django自学笔记 7-1 基于类的视图(Class-based views)介绍

————总目录——前言——框架版本———— ======================= 大爽歌作,made by big shuang ======================= 一、基于类的视图(Class-based views)介绍 1 介绍

大爽老师的博客 857

Django自学笔记之缓存

设置缓存: 通过设置决定把数据缓存在哪里,是数据库中、文件系统还是在内存中 通过setting文件的CACHES配置来实现 参数TIMEOUT:缓存的默认过期时间,以秒为单位,这个参数默认是300秒,即5分钟;设置TIMEOUT为None表示永远不会过期,值设置成0造成缓存立即失效 Django自带了一个健壮的缓存系统来保存动态页面(缓存到本地内存中): CACHES={ 'de...

執筆冩回憶 300

<学习笔记>从零开始自学Python-之-web应用框架Django(一)从Hello World 到 MTV

作为应用最为广泛的Python语言开发web应用的框架,Django是学习Python必须要学的基础框架之一。Django是一个开放源代码的web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。

qq_41597915的博客 1031

Django3:URL和视图_django3 baseurl,Golang面试基础题

url的匹配规则。并且在传递参数的时候,可以指定这个参数的数据类型,比如文章的id都是int类型,那么可以这样写int:id,以后匹配的时候,就只会匹配到id为int类型的url,而不会匹配其他的url,并且在视图函数中获取这个参数的时候,就已经被转换成一个int类型了。在项目变大以后,经常不会把所有的url匹配规则都放在项目的urls.py文件中,而是每个app都有自己的urls.py文件,在这个文件中存储的都是当前这个app的所有url匹配规则。传到视图函数中的时候,会作为一个关键字参数传过去。

2401_84254530的博客 1038

Django自学笔记之省市县筛选

建立数据库模型,models.py: from django.db import models class AreaInfo(models.Model): aid = models.IntegerField(primary_key=True) title = models.CharField(max_length=30) parea = models.Foreign...

執筆冩回憶 742

Django框架介绍(python自学笔记)

Django 是一个功能强大且易于使用的 Web 框架,适合各种规模的项目。其内置的安全性、可扩展性和强大的管理界面,使得开发者能够快速构建高质量的 Web 应用程序。无论是初学者还是经验丰富的开发者,Django 都是一个值得选择的框架。

疯狂屌丝程序员 1842
上一篇: Django自学笔记 1-3 常用命令和常见问题
下一篇: Django自学笔记 4-1 模型(Models)初步介绍+更新模型到数据库
大爽歌
博客等级 码龄9年 422粉丝 92原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值