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

目录

  • 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. 测试

在这里插入图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

详解c++---set的介绍

目录标题 set容器的介绍set的构造函数insert函数的介绍find函数erase函数count函数lower_boundupper_boundmultiset set容器的介绍 set容器可以看成我们上一篇文章学习的K结构的搜索二叉树&#xff0c;所以set容器不仅可以存储数据&#xff0c;还可以对数据进行排序和去重&…

新项目之初性能测试工作如何前移?

最近刚接手一个新项目&#xff0c;在最开始的时候要求对这个项目做性能测试&#xff0c;产品经理也给不出性能需求&#xff0c;只因为这个项目是电商项目&#xff0c;可能会有高并发&#xff0c;秒杀的场景&#xff0c;所以产品经理要求我们对这个项目必须做性能测试&#xff0…

【Linux:进程间信号】

文章目录 1 生活角度的信号2 技术应用角度的信号3 信号的产生3.1 由系统调用向进程发信号3.1.1 signal3.1.2 kill3.1.3 raise 3.2 由软件条件产生信号3.3 硬件异常产生信号3.4 通过终端按键产生信号3.5 总结思考一下 4 信号的保存4.1信号其他相关常见概念4.2在内核中的表示4.3 …

命令行创建uniapp项目

命令行创建uniapp项目 除了使用HBuilderX工具可视化搭建项目外&#xff0c;DCloud官方还提供了一个脚手架用于命令行搭建项目。 环境安装 全局安装vue-cli npm i vue/cli4 -g建议使用vue-cli 4.x版本&#xff0c;vue-cli 5.x与webpack存在冲突&#xff0c;会导致运行报错 …

【软件测试】测试用例设计要点总结

文章目录 考试题型简答题(一) 等价类划分1.1 划分等价类1.2 设计测试用例 (二) 边界值分析2.1 列出边界值分析表2.2 设计测试用例 (三) 因果图分析3.1 确定原因和结果3.2 确定原因和结果之间的逻辑关系3.3 在因果图上使用标准的符号标明约束条件 (四) 判定表驱动4.1 将因果图转…

如何利用ChatGPT写毕业论文

如何利用ChatGPT写毕业论文 ChatGPT是什么&#xff1f;利用ChatGPT写毕业论文的步骤1.准备数据2.训练模型3.生成论文4.检查论文 总结地址 ChatGPT是什么&#xff1f; ChatGPT是一个基于GPT-2模型的开源聊天机器人&#xff0c;它可以回答用户的问题&#xff0c;进行闲聊和提供各…

【头歌-Python】9.2 能带曲线绘制(project) 第1~3关

第1关&#xff1a;能带曲线绘制一 任务描述 本关任务&#xff1a;使用matplotlib绘制图形。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 使用 matplotlib 绘制图形python 读取文件 python 读取文件 python读取文件可以用以下函数实现&#xff1a; # …

Java学习笔记(视频:韩顺平老师)4.0

如果你喜欢这篇文章的话&#xff0c;请给作者点赞哟&#xff0c;你的支持是我不断前进的动力。 因为作者能力水平有限&#xff0c;欢迎各位大佬指导。 目录 如果你喜欢这篇文章的话&#xff0c;请给作者点赞哟&#xff0c;你的支持是我不断前进的动力。 控制结构 顺序 分…

用了【WRITE-BUG数字空间】,其他文档软件可以卸载、注销账号了

都3202年了文档都进化成在线协同编辑文档了 让我看看谁还在用本地软件写文档啊~滋滋滋 使用【WRITE-BUG数字空间】云文档全键盘写作不是梦&#xff01;铁汁&#xff0c;听我句劝&#xff0c;把本地软件卸载了奥&#xff0c;你把握不住~ 程序员兄弟姐妹们的最爱编辑器&#x…

TCP协议流程详解,抓包分析

目录 TCP概念TCP工作层TCP协议头部解析TCP抓包解析TCP三次握手&#xff0c;数据收发&#xff0c;四次挥手抓包TCP状态迁移 TCP概念 传输控制协议&#xff08;TCP&#xff0c;Transmission Control Protocol&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议&…

【2023年计划大纲】2023年技术笔记大纲

2023年技术笔记写作计划 按照技术类型&#xff0c;计划写以下三个领域的笔记&#xff1a; &#xff08;1&#xff09;AUTOSAR标准体系的专业知识&#xff0c;T-BOX,BMS,VCU这几个产品的设计和核心开发。包括UDS协议&#xff0c;XCP协议&#xff0c;OS操作系统。 每一个产品和…

Spring Cloud Kubernetes配置使用详情

目录 一、 为什么你需要 Spring Cloud Kubernetes&#xff1f; 二、 Starter 三、 用于 Kubernetes 的 DiscoveryClient 四、Kubernetes 原生服务发现&#xff08;service discovery&#xff09; 五、Kubernetes PropertySource 的实现 1、使用 ConfigMap PropertySource …

【HTML】form标签

<form> 标签用于创建 HTML 表单&#xff0c;它是用于收集用户输入的重要元素。表单可以包含各种输入字段、按钮和其他交互元素&#xff0c;用于向服务器发送用户输入数据。 下面是一个简单的 <form> 标签的示例&#xff1a; <form action"/submit-form&q…

释放 OpenAI 和 ESP-BOX 的力量:ChatGPT 与乐鑫 SoC 融合指南

当前&#xff0c;我们正见证着一场技术革命&#xff0c;而 OpenAI 正处于这场变革的最前沿。其中最激动人心的创新之一就是ChatGPT&#xff0c;它运用自然语言处理的力量&#xff0c;打造出更加引人入胜、直观的用户体验。而将 OpenAI 的 API 与物联网设备相结合&#xff0c;更…

Redis集群部署

Redis集群部署 1.单机安装Redis2.Redis主从集群2.1.集群结构2.2.准备实例和配置2.3.启动2.4.开启主从关系2.5.测试 3.搭建哨兵集群3.1.集群结构3.2.准备实例和配置3.3.启动3.4.测试 4.搭建分片集群4.1.集群结构4.2.准备实例和配置4.3.启动4.4.创建集群4.5.测试4.5.测试 本章是基…

java SSM 摄影作品网站myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 摄影作品网站系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主要采…

计算机网络-网络体系结构

目录 计算机网络的基本概念计算机网络的定义组成与功能计算机网络的分类按照网络的作用范围进行分类按照网络的使用者进行分类 计算机网络主要性能指标 计算机网络体系结构计算机网络协议、接口、服务等概念ISO/OSI 参考模型和 TCP/IP 模型OSI七层模型TCP/IP 模型封装与分用 计…

攻防渗透第四章(谷歌语法)

一、常用谷歌黑客语法 制定网站的URL site: 包含特定字符的URL inurl: 网页标题中包含特定字符 intitle: 正文中指定字符 intext: 指定类型文件 filetype 开发语言判断 site:163.com filetype:php site:163.com filetype:jsp site:163.com filetype:asp site:163.com filetype…

【裸机开发】内核时钟 PLL1 配置实验(一)—— 寄存器分析篇

本章主要会回答以下问题 &#xff1f; imx6u 的时钟源来自于哪 &#xff1f;为什么一个起始时钟源&#xff0c;最终分成了多路&#xff1f;不同的时钟源是如何与外设对应起来的&#xff1f;&#xff08;时钟树&#xff09;要配置内核时钟频率 有哪些步骤 &#xff1f;涉及到哪…

基于Java购物商城系统设计与实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…