Django之url反向解析
在urls.py文件中,在进行url映射时,为请求的url命个名,以便在模板页面或者views.py视图中可以进行反向解析,同时在修改了url映射的请求路径,名称不变的情况下,不再修改模板页面或者视图中的数据,项目不受影响正常执行!url标签中使用模板变量和普通标签参数一样,空格隔开,{{ % url 别名 %}}即可。
urls.py文件设置:
url(r'^url_reverse/', views.url_reverse,name="view_reverse"),
url(r'^login/', views.login,name="logining"),
模板页面url反向解析:
url_reverse.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>页面url反向解析</title>
</head>
<body>
<h1><a href="{% url "logining" %}">登录</a></h1>
{#{% url "loging" %}通过url反向解析名称"loging",直接获取到urls.py模块中与之对应的url路径"login/"#}
</body>
</html>
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<form action="http://127.0.0.1:8888/login/" method="post">
{% csrf_token %}<!--在进行模板渲染时会自动生成一个隐藏的input标签-->
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="userpsd"></td>
</tr>
<tr>
<td><input type="reset"></td>
<td><input type="submit" ></td>
</tr>
</table>
</form>
</body>
</html>
views.py视图中url反向解析:
from django.shortcuts import render, HttpResponse, redirect
from django.urls import reverse def url_reverse(request):
return render(request,"url_reverse.html") def login(request):
if request.method=="GET":
return render(request,"login.html")
elif request.method=="POST":
name=request.POST.get("username")
psd=request.POST.get("userpsd")
if name=="yang" and psd=="":
return HttpResponse("<h1>Success!</h1>")
else:
return redirect(reverse("view_reverse"))
#调用reverse()方法,参数为urls.py中的url名称,进行反向解析拿到"url_reverse/" # return redirect("view_reverse") #redirect自带了url反向解析,可以不用重复调用reverse(),直接引用名称
模板页面反向url解析补充:
url标签使用模板变量参数:
urls.py:
url(r'^update/book_id=([0-9]+)', views.update,name="update"),
views.py
return render(request, "update.html", {"book":book_odj})
html:
<form action="{% url "update" book.id %}" method="post">
Django之url反向解析的更多相关文章
- django的url反向解析
目的:防止页面中url地址改变,其他与这个URL地址有关联的都要改,减少耦合度 使用:主要分为在html中和视图函数中的使用 HTML中的使用: 如果我们在项目的url文件中通过include导入了应 ...
- Django学习笔记之Django的url反向解析
0x00 URL反向解析和三种不同的反向解析方式 Django中提供了关于URL的映射的解决方案,可以做两个方向的使用: 1.普通解析过程:由客户端的浏览器发起一个url请求,Django根据URL解 ...
- Django url配置 正则表达式详解 分组命名匹配 命名URL 别名 和URL反向解析 命名空间模式
Django基础二之URL路由系统 本节目录 一 URL配置 二 正则表达式详解 三 分组命名匹配 四 命名URL(别名)和URL反向解析 五 命名空间模式 一 URL配置 Django 1.11版本 ...
- Django url反向解析与路由分发名称空间
url反向解析 url.py from django.conf.urls import url from django.contrib import admin from app01 import v ...
- django命名url与url反向解析
1.在urls.py路由中指定别名 2.在views.py视图文件中导入from django.shortcuts import render, redirect, reverse 3.也可从这里导入 ...
- python 之 Django框架(路由系统、include、命名URL和URL反向解析、命名空间模式)
12.36 Django的路由系统 基本格式: from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名) ...
- Django路由系统-URL命名&URL反向解析
命名URL和URL反向解析 前言 起始样式,HTML中的href是写死的,不能更改,如下示例代码: # urls中 urlpatterns = [ url(r'^admin/', admin.site ...
- 巨蟒python全栈开发django4:url反向解析图解&&模板渲染
第一部分: 1.(1)知识点回顾: django回顾: ()下载安装 输入网址,a,form表单get post,爬虫 (请求)==>django项目服务端的url(r"index/& ...
- 04_Django-模板变量/标签/过滤器/继承-url反向解析
04_Django-模板变量/标签/过滤器/继承-url反向解析 视频:https://www.bilibili.com/video/BV1vK4y1o7jH 博客:https://blog.csdn ...
随机推荐
- php token验证范例
<?php $module = $_GET['module']; $action = $_GET['action']; $token = md5sum($module.date('Y-m-d', ...
- Jetson AGX Xavier刷机
1. 准备一台电脑做主机(host),运行Ubuntu系统,我用的是虚拟机,运行的是Ubuntu 18.04系统. 2. 主机更换apt-get源,参见https://www.cnblogs.com/ ...
- SQL计算算数表达式的函数自定义(加减乘除)
一.整体思路:循环遍历表达式字符串,设置一个index从第一个字符开始检测当前数字是否可以和后面的数字进行运算,如果可以运算,将两个数挑出来运算,然后用运算的结果替换原来表达式中的这两个数和符号,计算 ...
- 【Linux删除问题】Operation not permitted
问题:删除某文件出现cannot remove 'XXX': Operation not permitted 查看问题: 1. lsattr 查看隐藏属性 [root@oldboy oldboy]# ...
- Condition的await()和signal()流程
介绍 Condition是j.u.c包下提供的一个接口. 可以翻译成 条件对象,其作用是线程先等待,当外部满足某一条件时,在通过条件对象唤醒等待的线程.ArrayBlockingQueue就是通过Co ...
- MySQL重新初始化安装数据库
删除./mysql/var下的所有数据后,怎么重新安装初始数据库? (1)进入./mysql/bin目录下,执行脚本./mysql_install_db: (2)执行完(1)后,此时会在./mysq ...
- Xapian实战(四):搜索
参考资料: 学习Xapian(1)-基础的建索引和搜索 1. Xapian中用于搜索的类 Enquire - 提供了检索的接口:(Enquire API) QueryParser(QueryParse ...
- 【K8S】K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本)
[K8S]K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本) 写在前面 K8S集群部署成功了,如何对集群进行可视化管理呢?别着急,接下来,我们一 ...
- 解决python语言的工具pycharm以及Windows电脑安装pygame模块的问题
人生苦短,我用python,python作为一门当今时代潮流性的语言,已经成为大多数的年轻程序猿们向往的目标,python中有许多的库, 其中有一个pygame库是作为开发2D游戏必不可少的开发库,是 ...
- Spring Cloud学习 之 Spring Cloud Ribbon(执行流程源码分析)
Spring Boot版本:2.1.4.RELEASE Spring Cloud版本:Greenwich.SR1 文章目录 分析: 总结: 分析: 在上篇文章中,我们着重分析了RestTempla ...