<thead id="rrjt3"></thead>
      <progress id="rrjt3"><dfn id="rrjt3"></dfn></progress>

      <em id="rrjt3"></em>

        <address id="rrjt3"><ins id="rrjt3"><dfn id="rrjt3"></dfn></ins></address>
          <i id="rrjt3"></i>

        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>


        黄网站免费 <