参数的传递:
a:一种在是动态路由中传递多个参数。
b:一种通过get请求传递多个参数。
c:一种通过form表单形式提交给后台数据。
d:通过触发相应的事件来触发 ajax请求,给后端传输参数。
通过get请求往后端传递参数:
通过?参数名字=value&参数名字=value 来传递多个参数。django后台不需要进行参数的添加的,只需要通过request.GET.get(‘参数名字’)来获取传递的参数。
code:
1 def div_page(request): 2 page_num=request.GET.get('page') 3 content=request.GET.get('content') 4 print(content) 5 print(page_num) 6 return HttpResponse(int(page_num))
url:
1 http://127.0.0.1:8000/page/?page=5&content=3
这种方式的传递参数,后端直接GET获取,不需要在函数中定义额外的参数。较为灵活。
通过动态路由方式给后台传递参数,但是后端视图中的views.py定义的函数中参数必须要有相应的参数接收,如果参数不全或者多,都会导致函数的报错。相应的urls.py文件也要做相应的修改的。
code:
1 urlpatterns = [ 2 url(r'^admin/', admin.site.urls), 3 url(r'^test/', views.test), 4 url(r'^page/(\d+)$', views.div_page), 5 ] 6 7 def div_page(request,page): 8 print(page) 9 return HttpResponse(int(page))
url:
1 http://127.0.0.1:8000/page/2
传递多个参数:
1 urlpatterns = [ 2 url(r'^admin/', admin.site.urls), 3 url(r'^test/', views.test), 4 url(r'^page/(\d+)/(\d+)/', views.div_page), 5 ] 6 def div_page(request,page,page1): 7 print(page,page1) 8 return HttpResponse(page+page1)
url:
1 urlpatterns = [ 2 url(r'^admin/', admin.site.urls), 3 url(r'^test/', views.test), 4 url(r'^page/(\d+)/(\d+)/', views.div_page), 5 ]
需要注意的是:$的符号。这种方式保证在每次get的请求的时候都会传输参数。如果用 ?来携带的话,并不能保证请求必带参数,需要在逻辑上做判断。
form表单提交数据较为常见,通过POST给后端发送数据。在提交数据的时候,会刷新页面,比较不友好。
ajax请求的提交数据:可以说是"偷偷的给后端发送请求数据。"方式可以是get、也可以是post.需要注意的是:后端返回的数据必须为字符串形式。才能被ajax接收。这种方式的提交数据较为常见!也是我们经常使用的方式。
