Django学习笔记(五)Django传参

本文是Django学习笔记的第五部分,主要讲解了Django中参数传递的方式,包括get请求的两种形式:常规GET和REST风格,以及post方式的表单提交。在URL配置和视图函数中详细阐述了如何处理这些参数。

1.get:

get方式有两种:

一种是常用的get方式:http://xxx.xxx.xxx/xxx/xxx?xx=xx&xx=xx

一种是rest风格:http://xxx.xxx.xxx/xxx/xxx/xx

1.1get?方式:

urls中定义入口:

url(https://blog.csdn.net/r'^blog/get',%20'blog.views.get'),

views中定义param方法:

def get(req):
    url = req.get_full_path()
    urlParam = "http://www.baidu.com/s?wd=codeif.com&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=4&rsv_sug=1&rsv_sug1=3&rsv_sug4=74"
    o = urlparse.urlparse(urlParam)
    param_dict = urlparse.parse_qs(o.query)
    print o
    print param_dict['wd'][0]
    return render_to_response('param.html',{})

1.2Rest风格:使用到了正则表达式组的概念

urls中定义入口:组名为id,在param方法中则需要在req后面紧随id

url(https://blog.csdn.net/r'^blog/param/(?P<id>\d{2})$', 'blog.views.param'),
views中定义param方法:

def param(req,id):
    return render_to_response('param.html',{'id':id})

param.html页面:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{id}}</title>
</head>
<body>
{{id}}
<br/>
<br/>

</body>
</html>


2.post:

最常用的表单提交方式:

urls中定义入口:

url(https://blog.csdn.net/r'^blog/post/r'^blog/post/$', 'blog.views.post'#39;,%20'blog.views.post'),
views中定义post方法,并修改post提交的入口方法:

def get(req):
    form =  UserForm()
    return render_to_response('param.html',{'form':form})

def post(req):
    if req.method == 'POST':
        form = UserForm(req.POST)
        if form.is_valid():
            print form.cleaned_data
            return HttpResponse('OK')
    else :
        form =  UserForm()
        
        return render_to_response('param.html',{'form':form})


param.html页面:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>post方式提交</title>
</head>
<body>

提交form需要注释掉
settings文件中
MIDDLEWARE_CLASSES的验证(token验证)
<form action="/blog/post/" method="post">
	{{form}}
	<button type="submit">提交</button>
</form>
</body>
</html>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值