django的url分配和url捕获参数
django的url分配
- 一般视图模块(views.py)都放在自己所属的app目录下,在app目录下新建路径模块(urls.py),由app目录下的urls.py来分配当前app的路径。
- 在app目录下新建视图函数
- from django.shortcuts import render, HttpResponse
- # Create your views here.
- def test(request):
- return HttpResponse("HELLO WORLD")
- 然后再到app目录下的urls.py中配置路由
- from django.urls import path
- from .views import *
- app_name = 'crm'
- urlpatterns = [
- path('test.html/', test),
- ]
path方法里面有两个参数,第一个是视图函数的路由,第二个是该路由对应的视图函数的函数名(注意是函数名,不要带括号)
- from django.urls import path
- app_name是当前app名的字符串,防止在后面的path,repath中出现重复的url名而发生难以进行的区分和管理。
- 最后带项目跟目录下配置该app的路径,将app目录里的urls.py包裹在项目根目录下的urls.py里
- from django.contrib import admin
- from django.urls import path, include
- urlpatterns = [
- path('admin/', admin.site.urls),
- path('crm/', include('crm.urls')),
- ]
这个path接受两个参数,第一个是需要包含的app的名字,以"/"结尾, include里接受一个字符串("%s.urls" % app_name)
- from django.contrib import admin
- 最后启动服务,在manager.py的同级目录下 : python manager.py runserver 127.0.0.1:1234 (你能映射的ip地址)。 然后打开浏览器输入:127.0.0.1:1234/crm/test.html即可看到视图函数返回的页面
- path的完整规则: path(route, view, kwargs=None, name=None)
- route:是一个路由规则
- view是视图函数名
- kwargs额外参数,是一个字典
- name是url规则的名字
django在url中捕获参数
在urls.py(项目目录下)定义url规则时使用变量名可以捕获url中的值,传递给视图
- 到app下的view模块中新建个带有参数的视图函数
- from django.shortcuts import render, HttpResponse
- # Create your views here.
- def test(request):
- return HttpResponse("HELLO WORLD")
- def index(request, pk):
- return HttpResponse("你输入的参数是:%s" % pk)
- 再到app下的urls.py中为这个函数配置路由,用<>包裹视图函数中的参数
- from django.urls import path
- from .views import *
- app_name = 'crm'
- urlpatterns = [
- path('test.html/', test),
- path('index/<pk>/', index)
- ]
注意每条路由都由"/"结尾
- from django.urls import path
- 最后启动服务,在浏览器中输入:127.0.0.1:1234/index/8, 返回想应得页面
- 注意:路由中的参数必须和视图函数中的一致
路径转换器
当我们想约束参数的类型的时,可以使用路径转换器
常见的路径转换器:
- int:必须为整数
- str:匹配除了"/"路径分割符之外的所有的字符串
- slug:匹配任意ASCII字符+连字符和下划线
- uuid:格式化uuid
- path:匹配任意非空字符
转换器用法:
- path('index/<int:pk>/', index)
注意:转换器(int)和参数中的冒号之间不能有空格
django的url分配和url捕获参数的更多相关文章
- Django(一):url路由配置和模板渲染
urls.py路由用法 url基本概念 url格式 urls.py的作用 url解析过程 include的作用 kwarg的作用 name的作用 URL概念 URL(Uniform Resoure L ...
- 2.Django|简介与静态文件| URL控制器
1.简介 MVC Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务对象与数 ...
- Django url配置 正则表达式详解 分组命名匹配 命名URL 别名 和URL反向解析 命名空间模式
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 ...
- django 中的路由系统(url)
路由系统 根据Django约定,一个WSGI应用里最核心的部件有两个:路由表和视图.Django框架 的核心功能就是路由:根据HTTP请求中的URL,查找路由表,将HTTP请求分发到 不同的视图去处理 ...
- Django框架详解之url
Django基本命令 下载Django pip3 install django 创建一个django project django-admin.py startproject cms 当前目录下会生成 ...
- Django的路由系统:URL
一. URLconf配置 基本格式 from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图,参数,别名), ] 参数说明 ...
- Django基础之二(URL路由)
URL路由 简介 对于高质量的web应用来说,使用简洁,优雅的URL路由是一个值得尊重的细节,Django可以随心所欲的设计URL,不受框架的约束 为了给一个应用设计URL,你需要一个Python模块 ...
- Django 学习 之路由层(URL)
路由层(URL) 1.路由层简单配置 (1)path方法 写固定的url. (2)re_path方法 可以正则规则 例: urlpatterns = [ path('admin/', admin.si ...
- Django之web框架和url路由
一.web框架 1.什么是web框架 Web框架是用来进行Web应用开发的一个软件架构,开发者在基于Web框架实现自己的业务逻辑.Web应用本质上就是一个socket服务端,而用户的浏览器就是一个so ...
随机推荐
- day06 元组类型
一.什么是元组? 元组就是一个不可变的列表 元组的基本使用: 1.用途: 用于存放多个值,当存放多个任意类型的值 2.定义方式:在()内用逗号分隔开多个任意类型的值 t=(1,3.1,'aaa',( ...
- Mysql InnoDB三大特性-- double write
转自:http://www.ywnds.com/?p=8334 一.经典Partial page write问题? 介绍double write之前我们有必要了解partial page write( ...
- 深入研究sqlalchemy连接池
简介: 相对于最新的MySQL5.6,MariaDB在性能.功能.管理.NoSQL扩展方面包含了更丰富的特性.比如微秒的支持.线程池.子查询优化.组提交.进度报告等. 本文就主要探索MariaDB当中 ...
- Java 几种showMessageDialog的表示
最近在做swing程序中遇到使用消息提示框的,JOptionPane类其中封装了很多的方法. 很方便的,于是就简单的整理了一下. 1.1 showMessageDialog 显示一个带有OK 按钮的模 ...
- UFT测试本地应用程序登陆小实例(描述性编程)
Dim username,password Dim casecount,i Dim currentid DataTable.ImportSheet ,"Action1" casec ...
- Linux文件系统命令 umask
命令:umask 功能:指定创建文件或者文件夹的时,默认的权限设置 用法:umask -S:以rwx的方式查看创建文件的权限 umask -p:以补位的方式查看文件的权限,显示的是补位的十进制. 另外 ...
- Spring学习二
Spring的表达式语言 SpEL,使用方法是#{} SpEL的特性如下 使用Bean 的ID 来引用Bean : 调用方法和访问对象的属性: 对值进行算术.关系和逻辑运算: 正则表达式匹配: 集合操 ...
- L270 运动前要热身
If I'm being really honest, the only time I actually remember to stretch before a workout is when I' ...
- centos服务器删除/usr目录怎么办
凉拌 两种方法: 第一:重装系统,因为你的大部分命令使用不了了,如果你的服务器还有应用程序在跑,那你的服务也会有问题,因为一些服务的lib包也会放在此目录下,貌似需要重新装才可以 第二:利用ios镜像 ...
- snmp 简单网管协议
snmpget是取具体的OID的值.(适用于OID值是一个叶子节点的情况) snmpwalk snmpwalk — Fetch all the SNMP objects from an agent & ...