python-3.x - 如何在 django 中使用 request.GET[] 从收音机和日期输入中获取值
问题描述
我正在开发一个应用程序,在该应用程序中,我必须在 csv 文件中添加所有表单输入数据。我使用普通引导表单并使用 request.GET [] 访问表单输入数据,而不是 Django 表单。一切正常,但收音机和日期输入不起作用并出现此错误MultiValueDictKeyError at /abc/
。
这是我的代码views.py
from django.http import HttpResponse
#from django.templatetags.static import static
from django.shortcuts import render
#from django.contrib.staticfiles.templatetags.staticfiles import static
import csv
from csv import writer
def index(request):
return render(request, 'filedata/home.html')
def abc(request):
if request.method == "GET":
sid = request.GET['sid']
sname = request.GET['sname']
gender = request.GET['gender']
dob = request.GET['dob']
city = request.GET['city']
state = request.GET['state']
email = request.GET['email']
quali = request.GET['quali']
stream = request.GET['stream']
alist = [sid, sname, gender, dob, city, state, email, quali, stream ]
print(alist)
# Open file in append mode
with open('students.csv', 'a+', newline='') as write_obj:
# Create a writer object from csv module
csv_writer = writer(write_obj)
# Add contents of list as last row in the csv file
csv_writer.writerow(alist)
print("Added Successfully!!!")
print(sid)
flist = []
flist.append({'sid':sid})
flist.append({'sname':sname})
flist.append({'gender':gender})
flist.append({'dob':dob})
flist.append({'city':city})
flist.append({'state':state})
flist.append({'email':email})
flist.append({'quali':quali})
flist.append({'stream':stream})
return render(request, 'filedata/abcd.html', {"flist": flist})
主页.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Stacked form</h2>
<form action="/abc" method="get" name="myForm" enctype="multipart/form-data">
<div class="form-group">
<label for="sid">Student ID</label>
<input type="text" class="form-control" id="sid" placeholder="Enter Student ID" name="sid">
</div>
<div class="form-group">
<label for="sname">Student Name</label>
<input type="text" class="form-control" id="sname" placeholder="Enter Student Name" name="sname">
</div>
<label for="gender">Gender</label>
<div class="form-check">
<label class="form-check-label">
<input type="radio" class="form-check-input" id="male" value="male" name="gender">Male
</label>
</div>
<div class="form-check">
<label class="form-check-label">
<input type="radio" class="form-check-input" id="female" value="female" name="gender">Female
</label>
</div>
<div class="form-group">
<label for="dob">Date Of Birth</label>
<input class="form-control" type="date" value="2011-08-19" id="dob">
</div>
<div class="form-group">
<label for="city">City</label>
<input type="text" class="form-control" id="city" placeholder="Enter City" name="city">
</div>
<div class="form-group">
<label for="state">State</label>
<input type="text" class="form-control" id="state" placeholder="Enter State" name="state">
</div>
<div class="form-group">
<label for="email">Email ID</label>
<input type="email" class="form-control" id="email" placeholder="Enter email" name="email">
</div>
<div class="form-group">
<label for="quali">Qualification</label>
<input type="text" class="form-control" id="quali" placeholder="Enter Qualification" name="quali">
</div>
<div class="form-group">
<label for="stream">Stream</label>
<input type="text" class="form-control" id="stream" placeholder="Enter stream" name="stream">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</body>
</html>
解决方案
您name="dob"
在日期上缺少属性,因此它不会以形式发送,收音机也应该具有交替value="male"
或value="female"
带有 name="gender"
属性才能正确发送。
您始终可以在浏览器中检查网络选项卡,以查看数据是否已相应发送
推荐阅读
- python-3.x - 如何在 Python 中将 SVG 转换为 BMP
- syntax - OCaml 保护值后的语法
- pandas - 在 pandas 数据帧上使 bin 更粗糙,并在计数列中求和
- dafny - 相同的语法确保子句,一个成功,一个失败
- python - 软件包未安装在项目的虚拟环境中
- sql-server - 对单个表中的 2 列使用 STRING_SPLIT
- c# - 将当前用户与 ActiveDirectory DirectoryEntry 匹配
- c++ - 从数组中删除的最小值以使 max – min <= K
- python-3.x - 如何计算 url 中重复的特殊字符并附加到列表中?
- graphql - GitHub v4 API:计算评论的内容特定反应计数