django中url和视图函数path re_path views.py

news2024/11/24 14:48:42

目录

  • url的定义
  • url的格式
  • django中的url
  • django中的创建自己的url
  • django访问测试
  • django中的path动态
  • django中的path动态案例
  • django中的path动态类型
  • django中的path动态案例-计算器
  • django的正则路由re_path()

url的定义

url 统一资源定位符
url 用来表示互联网上某个资源的地址

大家都知道 互联网上 我们是不是都是打开浏览器
输入要查询的数据 例如 www.baidu.com
其实 www.baidu.com 就是一个 url 表示你要获取 www.baidu.com 服务器的资源
于是你就获得了百度的官网 在哪里在输入url 查询别的内容

url的格式

在这里插入图片描述

https://www.baidu.com:443/s?wd=1212&rsv_spt=1

https 协议
www.baidu.com  主机ip
443 端口
/s  文件目录
wd=1212 查询参数
这里可能没有#  但是#在htmlcss的锚点知识中能改了解过
定位到页面的某个id位置

在这里插入图片描述

django中的url

django的url 实在 urls.py文件中的

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

urlpatterns = [
	#匹配 127.0.0.1/admin
	#admin.site.urls 处理的函数
    path('admin/', admin.site.urls),
]

django中的创建自己的url

例如我们访问 127.0.0.1/app/page

  1. 第一步找到urls.py
 #添加url 127.0.0.1/app/page
#注意不能/  /app/page  不行的
path('app/page', admin.site.urls),
from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
    #添加url 127.0.0.1/app/page
    #注意不能/  /app/page  不行的
    path('app/page', admin.site.urls),
]

注意不能/开头
在这里插入图片描述
2. 配置处理请求的函数
处理的函数都放在了 views.py文件下
找不到的话就新建一个
views.py文件内容

#HttpResponse 进行http响应
from django.http import HttpResponse

#处理函数 也成为了视图函数  
#request 是固定的参数 是请求头的信息
def send_data(request):
    html = "<h1>我爱你 你敢反过来么</h1>"
    return HttpResponse(html)
  1. 把view.py的函数挂载到对应的url上面
    进入urls.py
from . import views
#注意  views.send_data 不能加()
urlpatterns = [
    path('admin/', admin.site.urls),
    path('app/page', views.send_data),
]

以上就完成了url的视图处理

django访问测试

在这里插入图片描述

django中的path动态

如果我们要匹配
/page/1
/page/2
/page/3

/page/100
难道要写100多个路由么 不用的 这就是动态路由

/page/< int:pagenumber >

django中的path动态案例

  1. 定义动态路由
 path('app/page/<int:pagen>', views.send_data),
  1. 定义视图函数
def send_data2(request, pagen):
    html = "<h1>这是第{0}页</h1>".format(pagen)
    return HttpResponse(html)
  1. 路由和视图相互挂关联
from . import views

path('app/page/<int:pagen>', views.send_data2),

pagen匹配的值   会成为一个参数 传递给views.send_data2的函数当中

  1. 测试

在这里插入图片描述

django中的path动态类型

除了int以外还有

<int : value>数字 
/app/page/<int : value>
/app/page/1

<str : value>字符串  
/app/page/<str : value>
/app/page/one

<slug : value > 匹配字母 数字 连字符 下划线构成的数据  
/app/page/<slug : value >
/app/page/who-are-you

<path : value>匹配某段路径  
/app/page/<path : value >
/app/page/a/b/c

django中的path动态案例-计算器

/a/操作符/b 计算ab的操作

  1. 创建路由
 path('<int:x>/<str:has>/<int:y>', views.page_add),
  1. 创建视图函数
def page_add(request, x, has, y):
    result = 0
    if has == '+':
        result = float(x) + float(y)
    elif has == '-':
        result = float(x) - float(y)
    elif has == '*':
        result = float(x) * float(y)
    elif has == '/':
        result = float(x) / float(y)
    else:
        result = "error"

    html = "<h1>{0}{1}{2}={3}</h1>".format(x, has, y, result)
    return HttpResponse(html)
  1. url和视图相互挂载
 path('<int:x>/<str:has>/<int:y>', views.page_add),
  1. 测试
    在这里插入图片描述

django的正则路由re_path()

引入在urls.py

from django.urls import path, re_path

re_path(正则表达式,视图函数,名字)
使用
1.定义url

re_path(r'app/(?P<x>\d*)', views_xxx),
  1. 定义函数
def send_get(request, x):
    html = "<h1>正则{0}</h1>".format(x)
    return HttpResponse(html)
  1. url和视图相互挂载
re_path(r'app/(?P<x>\d*)', views.send_get),

(?P<x>\d*)  匹配 \d的数值  当做参数传递给send_get 函数
核心就是 \d*的正则表达式
<x>  吧匹配的值给x
(?P<>)  分组的模板 
  1. 测试

在这里插入图片描述

希望以上内容对你有所帮助

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/644590.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

邀请媒体参加活动的邀请函应该怎么写

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 经常有小伙伴问媒体邀请函怎么写&#xff0c;今天胡老师就把媒体邀请函的一个大概格式分享出来&#xff0c;不论是 做成什么形式的邀请函&#xff0c;这几点都不可少。 主题&#xff1a;…

数据库的基本概念

数据库的基本概念 数据&#xff08;Data&#xff09; 描述事物的符号记录 包括数字、文字、图形、声音、档案记录等 以“记录”形式按统一的格式进行存储 表 将不同的记录组织在一起 用来存储具体数据 数据库 表的集合&#xff0c;是存储和管理数据的仓库 数据库管理…

linuxOPS基础_进程查看与管理

进程与程序的关系 进程是正在执行的一个程序或命令&#xff0c;每个进程都是一个运行的实体&#xff0c;并占用一定的系统资源。程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。 ​ 简单来说&#xff0c;程序是人使用计算机语言编写的&#xff0c;可…

三菱FX5U系列PLC之间进行简易PLC间链接功能的具体方法

三菱FX5U系列PLC之间进行简易PLC间链接功能的具体方法 功能介绍: 在最多8台FX5U或者FX3U PLC之间通过RS-485通信方式连接,进行软元件相互链接的功能。 接线注意事项: 根据链接模式和所使用的从站数量的不同,链接软元件的占用点数也有所变化。根据链接软元件的起始编号,对占…

Java数据结构之第十五章、Trie(前缀树/单词查找树)

一、前缀树 1.1前缀树相关知识 1.前缀树的概念&#xff1a;前缀树又叫字典树或单词查找树&#xff08;高效的存储和查找字符串集合的数据结构&#xff09;。 2.主要应用场景&#xff1a;给定一个字符串集合构建一颗前缀树&#xff0c;然后给定一个字符串&#xff0c;判断前缀…

Flink 流批一体在 Shopee 的大规模实践

摘要&#xff1a;本文整理自 Shopee 研发专家李明昆&#xff0c;在 Flink Forward Asia 2022 流批一体专场的分享。本篇内容主要分为四个部分&#xff1a; 1. 流批一体在 Shopee 的应用场景 2. 批处理能力的生产优化 3. 与离线生态的完全集成 4. 平台在流批一体上的建设和演进 …

华为OD机试 JavaScript 实现【扑克牌大小】【牛客练习题 HJ88】,附详细解题思路

一、题目描述 扑克牌游戏大家应该都比较熟悉了&#xff0c;一副牌由54张组成&#xff0c;含3~A、2各4张&#xff0c;小王1张&#xff0c;大王1张。牌面从小到大用如下字符和字符串表示&#xff08;其中&#xff0c;小写joker表示小王&#xff0c;大写JOKER表示大王&#xff09…

JavaScript笔记——快速了解 ES6 新增数组方法,开箱即用(含案例)

文章目录 &#x1f4cb;前言&#x1f3af;Array.from()&#x1f3af;Array.of()&#x1f3af;Array.find()&#x1f3af;Array.findIndex()&#x1f3af;Array.includes()&#x1f3af;Array.flat()&#x1f3af;Array.flatMap()&#x1f3af;Array.every()&#x1f3af;Array.…

MQTT相关知识点

目录 一、简述 二、设计规范 三、MQTT协议原理 3.1 MQTT协议实现方式 3.2 网络传输与应用消息 3.3 MQTT客户端 3.4 MQTT服务器 3.5 MQTT协议中的订阅、主题、会话 3.6 MQTT协议中的方法 四.MQTT脑图 五.体验MQTT 搭建MQTT服务器&#xff08;Broker&#xff09; MQT…

MFC 工具栏SOP 线程创建非模式化窗口 实现拓展工具栏

自己在学习工具栏的时候&#xff0c;做的笔记 1 实现基本工具栏 1.1 在Dlg.h文件中声明变量和定义资源ID #define ID_BUTTONS 501CToolBar m_toolbar; //工具栏 CImageList m_imageList; //工具栏图片 CImageList m_hotImageList; //工具栏热点图片 CReBar m_Rebar; //…

Jenkins安装以及部署

本文基于war包形式部署的 需要提前下载Jenkins的war包 Jenkins 的安装和设置下载内容 https://mirrors.jenkins.io/war 版本对应 目录 1.初始化环境 2.安装jdk 安装git Maven配置 安装Jenkins 使用DockerFile的方式进行部署 1.初始化环境 mkdir -p /home/soft 2.安装…

Python零基础入门(一)——Python简介与基础语法

系列文章目录 个人简介&#xff1a;机电专业在读研究生&#xff0c;CSDN内容合伙人&#xff0c;博主个人首页 Python入门专栏&#xff1a;《Python入门》欢迎阅读&#xff0c;一起进步&#xff01;&#x1f31f;&#x1f31f;&#x1f31f; 码字不易&#xff0c;如果觉得文章不…

智慧食堂如何建造?手把手教你

智慧食堂是现代科技与餐饮行业相结合的创新应用。随着技术的不断发展&#xff0c;许多企业和机构正积极采用智慧收银系统来改进食堂管理和收银流程。 引入智慧收银系统不仅可以提高企业食堂的运营效率&#xff0c;降低错误率&#xff0c;还能为企业带来更多的商机和竞争优势。 …

开源客户沟通平台Chatwoot

什么是 Chatwoot &#xff1f; Chatwoot 是一个开源客户沟通平台&#xff0c;可帮助公司在其网站、Facebook 页面、Twitter、Whatsapp、SMS、电子邮件等上吸引客户。 它是 Intercom、Zendesk、Salesforce Service Cloud 等的开源替代品。 很多网站的右侧或者右下角&#xff0c;…

中银国际在以太坊上发行代币化票据?三种可能,扑朔迷离!

* * * 原创&#xff1a;刘教链 * * * 号外&#xff1a;今天在“刘教链Pro”发表了一篇内参文章&#xff0c;《内参&#xff1a;对币本位高抛低吸策略的一点儿思考》&#xff08;次条&#xff09;&#xff0c;以及一篇原创文章《他提案将SEC主席Gary Gensler撤职》&#xff08;…

加速44%!RT-DETR量化无损压缩优秀实战

RT-DETR 模型是飞桨目标检测套件 PaddleDetection 最新发布的 SOTA 目标检测模型。其是一种基于 DETR 架构的端到端目标检测器&#xff0c;在速度和精度上均取得了 SOTA 性能。在实际部署中&#xff0c;为了追求“更准、更小、更快”的效率能力&#xff0c;本文使用飞桨模型压缩…

单元测试:构建可靠软件的关键步骤

点击上方“程序猿技术大咖”&#xff0c;关注并选择“设为星标” 回复“加群”获取入群讨论资格&#xff01; 引言&#xff1a; 在当今快节奏的软件开发环境中&#xff0c;构建可靠的软件是至关重要的。单元测试作为软件开发过程中的关键步骤之一&#xff0c;能够帮助开发者发现…

006、体系结构之TiKV读取和Coprocessor

TiKV读取和Coprocessor 1、数据的读取1.1、ReadIndex Read1.2、Follower Read 协同处理器(Coprocessor) 1、数据的读取 1.1、ReadIndex Read 例如此时要读取 key 1 的内容&#xff0c;它不能直接去kv中读取&#xff0c;因为它是分布式的&#xff0c;它经过TiDB Server 收到读…

认识ASP.NET MVC的5种AuthorizationFilter

一、IAuthorizationFilter 所有的AuthorizationFilter实现了接口IAuthorizationFilter。如下面的代码片断所示&#xff0c;IAuthorizationFilter定义了一个OnAuthorization方法用于实现授权的操作。作为该方法的参数filterContext是一个表示授权上下文的AuthorizationContext对…

机器学习笔记 - 基于深度学习的多种目标跟踪检测框架简述

一、 目标跟踪 对象跟踪是执行一组初始对象检测的任务,为每个初始检测创建唯一的 ID,然后在每个对象在视频中的帧中移动时跟踪它们,从而维护 ID 分配。最先进的方法涉及融合来自RGB和基于事件的相机的数据,以产生更可靠的对象跟踪。仅使用RGB图像作为输入的基于CNN的模型也…