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

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>页面url反向解析</title>
 6 </head>
 7 <body>
 8 <h1><a href="{% url "logining" %}">登录</a></h1>
 9 {#{% url "loging" %}通过url反向解析名称"loging",直接获取到urls.py模块中与之对应的url路径"login/"#}
10 </body>
11 </html>

  login.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>login</title>
 6 </head>
 7 <body>
 8 <form action="http://127.0.0.1:8888/login/" method="post">
 9     {% csrf_token %}<!--在进行模板渲染时会自动生成一个隐藏的input标签-->
10    <table>
11     <tr>
12         <td>用户名:</td>
13         <td><input type="text" name="username"></td>
14     </tr>
15     <tr>
16         <td>密码:</td>
17         <td><input type="text" name="userpsd"></td>
18     </tr>
19     <tr>
20         <td><input type="reset"></td>
21         <td><input type="submit" ></td>
22     </tr>
23        </table>
24 </form>
25 </body>
26 </html>
27  

views.py视图中url反向解析:

 1 from django.shortcuts import render, HttpResponse, redirect
 2 from django.urls import reverse
 3
 4 def url_reverse(request):
 5     return render(request,"url_reverse.html")
 6
 7 def login(request):
 8     if request.method=="GET":
 9         return render(request,"login.html")
10     elif request.method=="POST":
11         name=request.POST.get("username")
12         psd=request.POST.get("userpsd")
13         if name=="yang" and psd=="123":
14             return HttpResponse("<h1>Success!</h1>")
15         else:
16             return redirect(reverse("view_reverse"))
17        #调用reverse()方法,参数为urls.py中的url名称,进行反向解析拿到"url_reverse/"
18
19             # 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">

原文地址:https://www.cnblogs.com/open-yang/p/11221862.html

时间: 2024-10-29 13:33:25

Django之url反向解析的相关文章

python 之 Django框架(路由系统、include、命名URL和URL反向解析、命名空间模式)

12.36 Django的路由系统 基本格式: from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] ? 正则表达式: 一个正则表达式字符串 views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串 参数: 可选的要传递给视图函数的默认参数(字典形式) 别名: 一个可选的name参数 12.361 路由正则表达式 from django.conf.urls imp

python之路_day107_django中url反向解析及数据库连接

一.url反向解析 在正式介绍反向解析之前,我们首先介绍一下在django中的url参数,如下为我们url实例,其中name参数就是其别名,也就是我们接下来讲解的反向解析中所依靠的参数. 1.模板中反向解析 在我们的前端页面上,如form表单,我们通常会指定提交的路径,但是以往我们都是将路径写死,这显然不是很合理,因为当url中的路径需要改变的时候,我们又需要逐一去更改页面.这样不合理.所以我们就要用到url的别名进行反向解析. 语法: {% url 'url的别名' %} 实例如下: 2.视图

django URL反向解析和命名空间

一.反向解析URL 在实际的Django项目中,经常需要获取某条URL,为生成的内容配置URL链接. 比如,我要在页面上展示一列文章列表,每个条目都是个超级链接,点击就进入该文章的详细页面. 现在我们的urlconf是这么配置的:^post/(?P<id>\d+). 在前端中,这就需要为HTML的<a>标签的href属性提供一个诸如http://www.xxx.com/post/3的值.其中的域名部分,Django会帮你自动添加无须关心,我们关注的是post/3. 此时,一定不能硬

15、url反向解析和别名及命名空间

原文地址:https://blog.51cto.com/yht1990/2406962

Django之url上的include,URL命名和反向解析,命名空间 以及图书管理系统删除功能二合一方法

include其他的URLconfs #At any point, your urlpatterns can "include" other URLconf modules. This #essentially "roots" a set of URLs below other ones. #For example, here's an excerpt of the URLconf for the Django website itself. #It include

反向解析与重定向 | Django开发

1.html中的反向解析 1.1 原理:给url起名字,根据url的名字找到对应的视图 {% url 'register' %} # 如果url匹配时携带参数: url(r'^index/(\d+)/$', views.index, name='index'), # 那么,在匹配到视图时就需要传入一个参数: def index(request,param): return render(request, 'index.html', {'param':param}) # 在页面中的url反向解析,

Python自动化运维:Django之URL路由

准备首先新建一个Django 项目 django-admin startproject urlTest 进入manage.py所在目录后 ./manage.py startapp app1 ./manage.py startpap app2 此时我们新建了一个名为urlTest的项目,其中有两个模块的名称分别为app1和app2.(树目录结构如下) . ├── app1 │   ├── __init__.py │   ├── admin.py │   ├── apps.py │   ├── mi

Django路由(URL)

URL配置(URLconf)就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表. 我们就是以这种方式告诉Django,遇到哪个URL的时候,要对应执行哪个函数. URLconf配置 基本格式: from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图,参数,别名), ] 示例: from django.conf.urls import url from . import view

Django之url路由

Django之url路由 url路由介绍 url路由是关联url及其视图函数关系的过程. 作用就是使views里面处理数据的函数与请求的url建立映射关系 url路由配置 Django的url路由配置在settings.py文件中ROOT_URLCONF变量指定全局路由文件名称. 注意:默认创建项目的时候,就会配置好,如果想使用别的配置文件自行修改. Django的URL路由流程 Django查找全局urlpatterns变量(urls.py) 按照先后顺序,对URL逐一匹配urlpattern