时间:2021-05-22
命名 URL:
test.html:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>测试页面</title></head><body><p>测试页面</p><form action="/test/" method="post"> <input type="text" name="username" value=""> <input type="submit" name="提交"></form><a href="/json_test/" rel="external nofollow" >json 数据</a> </body></html>urls.py:
from django.conf.urls import urlfrom app01 import viewsurlpatterns = [ url(r'^test/', views.test), url(r'^json_test/', views.json_test),]如果 urls.py 中的 json_test/ 路径发生改变,test.html 中的地址也要改
可以使用反向 url 解析,给 json_test/ 起一个别名
urls.py:
from django.conf.urls import urlfrom app01 import viewsurlpatterns = [ url(r'^test/', views.test), url(r'^json_test/', views.json_test, name="json"), # 给该 url 匹配命名为 json]test.html:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>测试页面</title></head><body> <p>测试页面</p> <form action="/test/" method="post"> <input type="text" name="username" value=""> <input type="submit" name="提交"></form> <a href="{% url 'json' %}" rel="external nofollow" >json 数据</a> </body></html>这时候如果修改 urls.py 中的 json_test/ 路径,就不需要再去修改 test.html
反向解析 URL:
如果需要重定向这样的路径的话,可以在 views.py 中这样写:
from django.shortcuts import render, redirectfrom django.urls import reverse # json 测试def json_test(request): hobby = ["Music", "Movie", "Basketball", "Reading"] from django.http import HttpResponse, JsonResponse return JsonResponse(hobby, safe=False) def test(request): return redirect(reverse("json")) # 通过 json 反向得到路径 json_test/访问:http://127.0.0.1:8000/test/ 就变成访问:http://127.0.0.1:8000/json_test/
如果 url 需要传参数的话:
urls.py:
from django.conf.urls import urlfrom app01 import viewsurlpatterns = [ url(r'^test/', views.test), url(r'^json_test/(?P<id>[0-9]{2,4})/(?P<title>[a-zA-Z]+)/', views.json_test, name="json"),]test.html:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>测试页面</title></head><body><p>测试页面</p><form action="/test/" method="post"> <input type="text" name="username" value=""> <input type="submit" name="提交"></form><a href="{% url 'json' 12 'abcd' %}" rel="external nofollow" >json 数据</a></body></html>访问:http://127.0.0.1:8000/test/
点击 “json 数据”
反向解析需要参数的话:
urls.py:
from django.conf.urls import url, includefrom app01 import viewsurlpatterns = [ url(r'^test/', views.test), url(r'^json_test/(?P<id>[0-9]{2,4})/(?P<title>[a-zA-Z]+)/', views.json_test, name="json"),]views.py:
from django.shortcuts import HttpResponse, redirectfrom django.urls import reverse def json_test(request, id, title): print("id: ", id) print("title: ", title) return HttpResponse(id+"----"+title) def test(request): return redirect(reverse("json", kwargs={"id": 23, "title": "aaaa"}))访问:http://127.0.0.1:8000/test/
跳转到了:http://127.0.0.1:8000/json_test/23/aaaa/
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Django中提供了一个关于URL的映射的解决方案,1.客户端的浏览器发起一个url请求,Django根据URL解析,把url中的参数捕获,调用相应的试图,获取
PHP中解析url并得到url参数这里介绍两种对url操作的方法:1、拿到一个完整url后,如何解析该url得到里面的参数。/***解析url中参数信息,返回参
在HTTP部分,详细介绍了URL的相关知识。而nodejs中的url模块提供了一些实用函数,用于URL处理与解析。解析URL解析URL对象有以下内容,依赖于他们
使用自动加载和解析url的参数,实现调用到不同的控制器,实现了pathinfo模式和普通的url模式文件结构:|--Controller |--Index
简介urlparse模块主要是用于解析url中的参数对url按照一定格式进行拆分或拼接。urlparse库用于把url解析为各个组件,支持file,ftp,ht