Django框架学习笔记(5.获取多个数据以及文件上传)

前篇做到了获取一个输入框的内容,不过,怎么获取多个数据,如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文件夹下:





上传成功!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值