<dd id="t699n"></dd>

  • <em id="t699n"></em>

    1. <dd id="t699n"></dd>

      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>


      黄网站免费 <