django基础(三)之视图及文件上传和多选等操作

views.py

from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.shortcuts import redirect
import os


USRE_LIST = []

def home(request):
    if request.method == 'POST':
        uname = request.POST.get('username')
        email = request.POST.get('email')
        gender = request.POST.get('gender')
        user_dic = {'u':uname,'e':email,'gender':gender}
        USRE_LIST.append(user_dic)
    return render(request,'home.html',{'user_list':USRE_LIST})

def login(request):

    if request.method == "GET":
        return render(request,'login.html')
   
    elif  request.method == "POST":
        #获取选择的值
        # v = request.POST.getlist('upload')      ###此处的upload为login.html里文件上传标签的属性值
        # print (v)                               ###传一个图片,默认情况下获得的为图片的名称

  #获取上传的文件到指定目录(文件上传操作)
        file = request.FILES.get('upload')            ###获取图片的值
        file_path = os.path.join('upload',file.name)
        f = open(file_path,mode='wb')            #获取上传的文件
        for i in file.chunks():
            f.write(i)
        f.close()
        #from  django.core.files.uploadedfile import InMemoryUploadedFile
        return render(request, 'login.html')

    else:
        return redirect(request,'/login')

 

login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="/static/common.css">
    <style>
        label{
            width: 100px;
            display: inline-block;
            text-align: center;
        }

    </style>
</head>
<body>
    <form action="/login" method="post" enctype="multipart/form-data">
        <p>
            <label for="username">用户名:</label>
            <input id="username" name="user" type="text"/>
        </p>
        <p>
            <label for="password">密码:</label>
            <input id="password" name="password" type="password"/>

        </p>
        <p>
            男:<input type="radio" value="man" name="gender" />
            女:<input type="radio" value="women" name="gender" />
        </p>
        <p>
            男:<input type="checkbox" value="man" name="favor"/>
            女:<input type="checkbox" value="women" name="favor"/>
        </p>

        <p>

            <select name="city" multiple>       <!-- multiple 代表多选 -->
                <option value="bj">北京</option>
                <option value="tj">天津</option>
                <option value="sh">上海</option>

            </select>
        </p>
        <p>
            <input type="file" name="upload"/>    <!--文件上传操作-->
        </p>
        <p>
            <input type="submit" value="提交"/>
            <span style="color: red">{{ error_msg }}</span>
        </p>
    </form>
    <script src="/static/jquery-3.2.1.js"></script>
</body>
</html>

 

获取多个值操作

 

文件上传操作

 

多选操作

 

posted @ 2018-04-27 15:22  FRESHMANS  阅读(288)  评论(0)    收藏  举报