Django学习手册 - 正则URL路由配置/路由分发
2024-09-22 06:44:48
###############################################
总结:
一、url路由配置:
方式一:(通过url链接get获取)
方式二:(url路由匹配方式获取-拓展(元组方式,))
方式三:(url路由匹配方式获取-拓展(字典方式))
二、表单动态提交方式:
name属性运用
request.path_info属性运用
三、路由分发
###############################################
一、url路由配置:
方式一:
前端:
<ur>字典循环:(items)
{% for i,j in dict_info.items %}
<li>
{# 方式一:提交nid到url连接里面。#}
<a href="/index2/?nid={{ i }}"> {{ i }} --- {{ j.name }}</a>
</li>
{% endfor %}
</ur>
URL配置:
后端views配置:
dict_info = {
"":{"name":"root1","phone":""},
"":{"name":"root2","phone":""},
"":{"name":"root3","phone":""},
"":{"name":"root4","phone":""},
"":{"name":"root5","phone":""},
"":{"name":"root6","phone":""},
"":{"name":"root7","phone":""},
} def index(request):
return render(request,"index.html",{"dict_info":dict_info}) #方式一:(利用url提交过来获取)
def index2(request):
nnid = request.GET.get("nid")
return HttpResponse(nnid)
测试:
获取到了nid 的数据了。
方式二:
前端:
<ur>字典循环:(items)
{% for i,j in dict_info.items %}
<li>
{# 方式二:提交的url,通过urls路由匹配到。#}
<a href="/index2-{{ i }}"> {{ i }} --- {{ j.name }}</a>
</li>
{% endfor %}
</ur>
url路由配置:
urlpatterns = [
path('admin/', admin.site.urls),
url('^index/', views.index), # 方式二的URL路由
url('^index2-(\d)', views.index2),
# 元组形式
# url('^index2-(\d)-(\d)', views.index2),
]
后端:
# 方式二:(利用url匹配的方式获取)
def index2(request,nid):
return HttpResponse(nid)
#元组形式获取
# def index2(request,*args):
# return HttpResponse(args)
测试:
方式三:
前端:(不需要修改)
<ur>字典循环:(items)
{% for i,j in dict_info.items %}
<li>
<a href="/index2-{{ i }}"> {{ i }} --- {{ j.name }}</a>
</li>
{% endfor %}
</ur>
URL配置:
#方式三的URL路由
url('^index2-(?P<nid>\d)', views.index2),
#字典形式
# url('^index2-(?P<nid>\d)-(?P<uid>\d)', views.index2),
后端:
def index2(request,**kwargs):
print(kwargs)
return HttpResponse(kwargs.values())
测试:
二、表单url动态提交方式:
name属性运用
前端:
{# 表单提交方式,可以用django内置方法命名提交,动态匹配url方式#}
<form action="{% url 'names' %}" method="post">
{# <form action="{% url 'names'可在后面添加参数 %}" method="post">#}
aaaaa
</form>
url配置:
# 表单提交,动态匹配url方式,name 属性
url('^1234', views.index2,name="names"),
测试:
request.path_info属性运用
{#
request.path_info表单提交方式,完全动态匹配当前url方式#}
<form action="{{ request.path_info }}" method="get"> 不不 </form>
三、路由分发:
有两天业务线,app01,app02,在urls 内导入 include ,引入路由分发代码
在app02 目录下新建一个urls 文件
配置
在app02视图内配置
测试:
最新文章
- PPTP-VPN第一章——部署与简单使用
- eclipse导入cordova创建的项目
- Java基础复习笔记系列 三
- error: Setup script exited with error: Unable to find vcvarsall.bat
- Android(java)学习笔记142:使用Sqlite基本流程
- Android在发送带有附件的邮件
- iOS 8 AutoLayout与Size Class自悟(转载)
- 每日冲刺报告-Day4
- [HNOI 2014]江南乐
- Thymeleaf 3.0 专题
- windows根据端口号杀进程
- 第五篇-ubuntu下插入U盘,显示可读系统。
- RESTful API 最佳实践----转载阮一峰
- nginx 禁止未绑定的域名访问
- VMware Authorization Service不能启动 VMware虚拟机状态已挂起无法恢复解决方案
- 多模块Maven项目如何使用javadoc插件生成文档
- android 获取view在屏幕中的位置
- JavaScript运算符与类型
- FFmpeg精确时间截取视频
- kNN分类算法实例1:用kNN改进约会网站的配对效果
热门文章
- BZOJ1014 JSOI2008火星人(splay+哈希)
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 i题 Minimum(线段树)
- day30 hashlib模块
- 洛谷P3345 [ZJOI2015]幻想乡战略游戏(动态点分治,树的重心,二分查找,Tarjan-LCA,树上差分)
- 自学Linux Shell13.3-获得用户输入(read命令)
- android handler msg的使用 实现进度条
- UOJ #314. 【NOI2017】整数 | 线段树 压位
- 【转】C语言字符串与数字相互转换
- 在Android中afinal框架下實現sqlite數據庫版本升級的辦法
- 【CH1602】最大异或和 trie+贪心