django 的参数的传递


参数的传递:

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接收。这种方式的提交数据较为常见!也是我们经常使用的方式。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM