Django: 路由与视图 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

提取表单数据

当用户提交HTML页面中的表单对象时,Django框架会将收到的表单数据封装为QueryDict对象, 并根据请求方法(GET/POST)的不同,分别保存在HttpRequest对象的GETPOST属性中。

例如,对于下面的表单:

<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使其依然可以读取到表单数据