当前位置: 首页 > news >正文

Django基础(二)———URL与映射

前言

上篇文章给大家简单介绍Django框架的创建以及使用。

这篇文章将介绍Django框架当中最为重要的基础之一  URL与映射


一、URL与映射是什么?

在 Django 框架中,URL 与映射(URLconf)是核心机制之一,负责将用户请求的 URL 路径映射到对应的视图函数/类

二、核心概念

1.URLconf (URL configuration)
一个 Python 模块(通常是 urls.py),定义 URL 模式与视图的映射关系。

2.URL 模式
通过 path() 或 re_path() 定义的规则,匹配 URL 路径并触发视图。

三、使用 

1.使用流程

#https://www.baidu.com/s?wd=python
#URL与视图的映射
#并/S(URL)->视图函数,进行映射
#http://127.0.0.1:8000->返回“欢迎来到Django”

2.编写代码

在urls.py种写入以下代码

from django.contrib import admin
from django.urls import path
from django.shortcuts import HttpResponsedef index(request):return HttpResponse("欢迎使用Django")
urlpatterns = [path('admin/', admin.site.urls),path('s',index)
]

这里只是给大家做一个演示,实际开发过程当中函数视图实不会卸载url.py文件当中,会写在view.py当中。

3.url两种传参方式

# 在URL中携带参数
#1.通过查询字符串(query string):https://www.baidu.com/s?wd=python&a=1&b=2
#2.在path中携带:http://127.0.0.1:8000/book/2

3.1查询字符串

#views.py
from django.shortcuts import HttpResponse
#1.查询字符串的方式:http://127.0.0.1:8000/book?id=3
def book(requset):book_id =requset.GET.get('id')return HttpResponse('您查询的id:{}'.format(book_id))
#urls.py
from app import views
urlpatterns = [path('admin/', admin.site.urls),path ('book',views.book)
]

 

3.2path传参

#views.py
#2.path方式 http://127.0.0.1:8000/book/1
def book_path(request,book_id):return HttpResponse('您查询的id:{}'.format(book_id))
#urls.py
#urls.pyfrom app import views
urlpatterns = [path('admin/', admin.site.urls),path('book/<book_id>',views.book_path)
]

 

 #1.以后在浏览器中,如果book_id输入的是一个非整形,那么会出现404错误:/book/abc
#2.在视图函数中,得到的book_id就是一个整形,否则,默认是str类型
path('book/int:<book_id>', views.book_path)

4.path函数详解

path函数的定义为:path(route,view,name=None,kwargs=None)。以下对这几个参数进行讲解。

1.route参数:ur1的匹配规则。这个参数中可以指定ur1中需要传递的参数,比如在访问文章详情页的时候,可以传递一个id。传递参数是通过>>尖括号来进行指定的。并且在传递参数的时候,可以指定这个参数的数据类型,比如文章的id都是int类型,那么可以这样写int:id以后匹配的时候,就只会匹配到id为int类型的ur1,而不会匹配其他的ur1,并且在视图函数中获取这个参数的时候,就已经被转换成一个int类型了。其中还有几种常用的类型:

  • str:非空的字符串类型。默认的转换器。但是不能包含斜杠。

  • int:匹配任意的零或者正数的整形。到视图函数中就是一个int类型

  • slug:由英文中的横杠-,或者下划线_连接英文字符或者数字而成的字符串。11-222-1234_abdf

  • uuid:匹配uuid字符串。

  • path:匹配非空的英文字符串,可以包含斜杠/。(某个文件夹下面的文件)

2.view参数:可以为一个视图函数或者是类视图.as_view()或者是django.ur1s.include()函数的返回值。

3.name参数:这个参数是给这个ur1取个名字的,这在项目比较大,ur1比较多的时候用处很大。

5.url模块化

在我们的项目中,不可能只有一个app,如果把所有的app的views中的视图都放在ur1s.py中进行映射,肯定会让代码显得非常乱。因此django给我们提供了一个方法,可以在app内部包含自己的ur1匹配规则,而在项目的ur1s.py中再统一包含这个app的ur1s。使用这个技术需要借助include函数。示例代码如下:

在people应用下创建urls.py文件夹

#people应用下 views.py
from django.shortcuts import HttpResponse
def people_list(requset):return HttpResponse('电影列表')def people_id(request,people_id):return HttpResponse('您传入的ID是{}'.format(people_id))
#people应用下的 urls.py
from django.urls import pathfrom . import views#指定命名空间
app_name = 'people'
urlpatterns = [path('people_list',views.people_list,name='people_list'),path('people_id/<int:people_id>',views.people_id,name='people_id')
]
#Cangku应用下的 urls.py
from django.urls import path
from django.urls import include
urlpatterns = [path('admin/', admin.site.urls),path('people/',include("people.urls"))
]

http://www.lryc.cn/news/588912.html

相关文章:

  • WSI中sdpc格式文件学习
  • 函数柯里化详解
  • 知识增强型Agent开发新范式:基于ERNIE-4.5的检索增强生成架构实践
  • ubuntu22.04 软创建 RAID1 与配置流程
  • Ubuntu 安装
  • Ubuntu环境下的K3S集群搭建
  • 一文读懂语义解析技术:从规则到神经网络的演进与挑战
  • DGNNet:基于双图神经网络的少样本故障诊断学习模型
  • 暑期算法训练.1
  • Linux下调试器gdb/cgdb的使用
  • 只解析了CHAME记录,如何申请免费的SSL证书
  • Linux 命令:passwd
  • WPF中ListView控件详解
  • 牛客:HJ23 删除字符串中出现次数最少的字符[华为机考][字符串]
  • Linux部署Python服务
  • langchain教程10:LCEL
  • 阿里云 Kubernetes 的 kubectl 配置
  • 深入理解设计模式之外观模式:简化复杂系统的艺术
  • 企业培训视频如何做内容加密防下载防盗录(功能点整理)
  • 优雅的Java:01.数据更新如何更优雅
  • 2025开放原子开源生态大会 | openKylin的技术跃迁和全球协作
  • 2025阿里云黑洞恢复全指南:从应急响应到长效防御的实战方案
  • CentOS服务器安装Supervisor使队列可以在后台运行
  • 2.3 数组与字符串
  • QGIS新手教程9:字段计算器进阶用法与批量处理技巧
  • HTTP性能优化实战技术
  • 串口通信性能优化
  • golang语法-----变量、常量
  • Go语言统计字符串中每个字符出现的次数 — 简易频率分析器
  • 解锁Redis:从安装到配置的全攻略