###############################################
总结:
一、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 = { "1":{"name":"root1","phone":"111"}, "2":{"name":"root2","phone":"222"}, "3":{"name":"root3","phone":"333"}, "4":{"name":"root4","phone":"444"}, "5":{"name":"root5","phone":"555"}, "6":{"name":"root6","phone":"666"}, "7":{"name":"root7","phone":"777"}, } 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视图内配置
测试: