提取表单数据
当用户提交HTML页面中的表单对象时,Django框架会将收到的表单数据封装为QueryDict对象, 并根据请求方法(GET/POST)的不同,分别保存在HttpRequest对象的GET或POST属性中。
例如,对于下面的表单:
<form action="/login/" method="GET">
<input type="text" name="user">
<input type="password" name="pwd">
<input type="submit" value="Login">
</form>
可以在视图函数中使用请求对象的GET属性读取表单各字段值:
user = req.GET['name']
pwd = req.GET['pwd']
如果上面示例中的表单,将提交方法改为POST:
<form action="/login/" method="POST">...</form>
那么在视图函数中,就应当使用请求对象的POST属性读取表单各字段值:
user = req.POST['name']
pwd = req.POST['pwd']
django.http.QueryDict
QueryDict类继承自标准的Dict类,因此可以像字典对象一样,使用[]操作 符来读取指定键的值。
QueryDict所做的主要功能扩展是支持同一个键多个值,当读取指定键时,返回的 是最后一个值。
关于QueryDict的深入信息可以查阅官网: QueryDict对象
修改示例代码:
1. 将视图v_index中响应内容的表单提交方法设置为GET
2. 修改视图v_login使其依然可以读取到表单数据