• <ol id="gebcs"></ol>
    <track id="gebcs"><i id="gebcs"></i></track>

    Django用sql原生方法操作基本信息添加到數據庫

    時間:2022-03-27 21:12:55 類型:python
    字號:    

    Django用sql原生方法操作基本信息添加到數據庫的視圖及模板示例

    視圖頁面:

    from django.http import HttpResponse
    from django.shortcuts import render
    from django.db import connection
    import time,uuid
    from django.conf import settings
    
    def add(request):
        if request.method == "GET":
            return render(request,'admin/student/add.html')
        elif request.method == "POST":
            result = request.POST.dict()
            hobby  = request.POST.getlist("hobby")
            # getlist('hobby') 用于接收多個信息, 通常是 多選框
            result['hobby'] = ",".join(hobby)
            result['addtime'] = time.time()
            del result['csrfmiddlewaretoken']
    
            # 文件 上傳
            try:
                file = request.FILES["file"]   #如果沒有選擇文件上傳,就會有 異常
                list = file.name.split(".")
                ext = list[-1]
                newname = uuid.uuid1().hex + "." + ext
                #生成新的文件名
                ext_tup = ("gif", "png", "jpeg", "jpg")
                if ext not in ext_tup:
                    return HttpResponse("<script>alert('只能上傳圖片');history.back();</script>")
                #imgname = "./statics/up/" + newname
                imgname   = settings.UPLOAD_PATH + newname
                # 在setting文件中設置 UPLOAD_PATH
    
                destination = open(imgname, 'wb+')
                for chunk in file.chunks():
                    destination.write(chunk)
            except Exception as err:
                print(err)
                newname = ''
            result['pic'] = newname
            #設置上傳文件名
    
            cursor = connection.cursor()
            sql = """insert into student(name,sex,blood,hobby,intro,addtime,pic)values('{name}','{sex}','{blood}','{hobby}','{intro}','{addtime}','{pic}')"""\
                .format(**result)
            
            num = cursor.execute(sql)
    
            return HttpResponse("添加成功")

    模板頁面:

    <div class="form">
        <form action="/admin/student/add" method="post" enctype="multipart/form-data">
            {% csrf_token %}
            <li>
                 姓名: <input type="text" name="name">
            </li>
            <li>
                 性別: <input type="radio" name="sex" value="男" checked> 男
                       <input type="radio" name="sex" value="女">
            </li>
            <li>
                 血型: <select name="blood">
                            <option value="A">A型</option>
                            <option value="B">B型</option>
                            <option value="AB">AB型</option>
                            <option value="O">O型</option>
                        </select>
            </li>
            <li>
                 愛好:
                <input type="checkbox" name="hobby" value="籃球">籃球
                <input type="checkbox" name="hobby" value="足球">足球
                <input type="checkbox" name="hobby" value="網球">網球
                <input type="checkbox" name="hobby" value="排球">排球
                <input type="checkbox" name="hobby" value="臺球">臺球
    
            </li>
            <li>
                照片:
                <input type="file" name="file">
            </li>
            <li>
                 介紹:
                <textarea name="intro" ></textarea>
            </li>
            <li>
                <input type="submit" value="提交">
            </li>
        </form>
    </div>


    黄片基地 <