前篇做到了获取一个输入框的内容,不过,怎么获取多个数据,如checkbox里的,
如何上传一个文件呢?
这里做个简单的介绍:
1.创建Django工程,配置相关,创建app
urls.py修改如下:
from django.contrib import admin from django.urls import path from app01 import views urlpatterns = [ path('admin/', admin.site.urls), path('index/', views.index), path('login/', views.login), ]
views.py:
from django.shortcuts import HttpResponse from django.shortcuts import render from django.shortcuts import redirect # Create your views here. def index(request): return HttpResponse("index") def login(request): if request.method == "GET": return render(request, "login.html") elif request.method == "POST": v = request.POST.get("gender") f = request.POST.getlist("favor") import os obj = request.FILES.get("fff") file_path = os.path.join("upload", obj.name) f = open(file_path, mode="wb") for i in obj.chunks(): f.write(i) f.close() return render(request, "login.html") else: return redirect(request, "/index/")
注意:这里创建了一个新的文件夹upload用于存放上传的文件
v = request.POST.getlist("favor")这句将获取的多个数据存入列表
login.html内容如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> </head> <body> <form action="/login/" method="POST" enctype="multipart/form-data"> <p> 男:<input type="radio" name="gender" value="1"/> 女:<input type="radio" name="gender" value="2"/> </p> <p> 男:<input type="checkbox" name="favor" value="11"/> 女:<input type="checkbox" name="favor" value="22"/> </p> <p> <input type="file" name="fff"/> </p> <input type="submit" value="提交"/> </form> </body> </html>
这里注意form的enctype属性,如果想上传文件,就要加上这条,其他用不到的内容
这里我随意上传一张图片:
发现upload文件夹下:
上传成功!