04_DJango路由URL参数传递,URL=====>>views.py

参数的传递:

a:一种在是动态路由中传递多个参数。

b:一种通过get请求传递多个参数。

c:一种通过form表单形式提交给后台数据。

d:通过触发相应的事件来触发 ajax请求,给后端传输参数。

 

通过get请求往后端传递参数:

通过?参数名字=value&参数名字=value 来传递多个参数。django后台不需要进行参数的添加的,只需要通过request.GET.get(‘参数名字’)来获取传递的参数。

 

views.py:

#url:
#http://127.0.0.1:8000/page/?page=5&content=3        #通过?参数名字=value&参数名字=value 来传递多个参数

#urls.py
......

#views.py:
def div_page(request):
     page_num=request.GET.get('page')                #GET方法直接获取url通过?参数名=value,page_num=5
     content=request.GET.get('content')              #GET方法直接获取url通过?参数名=value,content=3
     print(content)
     print(page_num)
     return HttpResponse(int(page_num)+int(content))


#html
#使用{{ page_num }} 获取views.py参数

 

url:

http://127.0.0.1:8000/page/?page=5&content=3

这种方式的传递参数,后端直接GET获取,不需要在函数中定义额外的参数。较为灵活。

 

传递一个参数:

通过动态路由方式给后台传递参数,但是后端视图中的views.py定义的函数中参数必须要有相应的参数接收,如果参数不全或者多,都会导致函数的报错。相应的urls.py文件也要做相应的修改的。

urls.py:

 urlpatterns = [
     path(r'^admin/', admin.site.urls),
     path(r'^test/', views.test),
     path(r'^page/(\d+)$', views.div_page),            #(\d+) 就是url传递过来的2
 ]
 
VIEWS.PY
 def div_page(request,page):            #url传递过来的参数是2
     print(page)
     return HttpResponse('接收到URL的参数是:'+str(int(page)))

 

url:

http://127.0.0.1:8000/page/2

 

传递多个参数:

urls.py:

 urlpatterns = [
     path(r'^admin/', admin.site.urls),
     path(r'^test/', views.test),
     path(r'^page/(\d+)/(\d+)/', views.div_page),
 ]
 

views.py:

def div_page(request,page,page1):
     print(page,page1)
     return HttpResponse(page+page1)

url:

http://127.0.0.1:8000/page/2/4/

 

需要注意的是:$的符号。这种方式保证在每次get的请求的时候都会传输参数。如果用 ?来携带的话,并不能保证请求必带参数,需要在逻辑上做判断。

form表单提交数据较为常见,通过POST给后端发送数据。在提交数据的时候,会刷新页面,比较不友好。

ajax请求的提交数据:可以说是"偷偷的给后端发送请求数据。"方式可以是get、也可以是post.需要注意的是:后端返回的数据必须为字符串形式。才能被ajax接收。这种方式的提交数据较为常见!也是我们经常使用的方式。

你可能感兴趣的:(django,正则表达式)