iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
Modern Web

Django新手指南系列 第 13

北有戰鬥陀螺 (?) 設定資料庫(上) 江狗(Django) 鐵人Day13

  • 分享至 

  • xImage
  •  

我們需要在Views.py裡設定輸入進去的數據才能讓資料表正確存取我們需要的有效資料,也可以讓資料進行邏輯判斷後再寫進資料表中,我們在Views.py加入以下指令:

<views.py>

from django.http import JsonResponse
import json


def classlist(request):
    if request.method == 'POST':
        data = json.loads(request.body)
        Grade = data['Grade']
        Class = data['Class']
        Gender = data['Gender']
        Number = data['Number']
        Name = data['Name']
        outputinfo={}
        if Grade!='' and Class!='' and Gender!='' and Number!='' and Name!='':
            count = Classlist.objects.filter(Name=Name).count()
            if count == 0:
                classlistDB = Classlist.objects.create(Grade=Grade,
                                                       Class=Class, 
                                                       Gender=Gender,
                                                       Number=Number,
                                                       Name=Name)
                outputinfo = {"資料輸入成功,輸出結果": 
                             {"Grade": classlistDB.Grade,
                              "Class": classlistDB.Class,
                              "Gender": classlistDB.Gender,
                              "Number": classlistDB.Number,
                              "Name": classlistDB.Name,
                              "Upload_Time": classlistDB.Upload_Time,
                              "Last_Modified": classlistDB.Last_Modified}}
            else:
                outputinfo['資料錯誤']= "姓名已存在"
        else:
            outputinfo['資料錯誤'] = "輸入資料不為空"
    else:
        outputinfo['資料錯誤'] = "請使用POST輸入"
    return JsonResponse(outputinfo,safe=False,
                        json_dumps_params={'ensure_ascii':False})

上面看起來有些複雜,這裡來分析一下,將程式碼拆分成八個部分:

  1. 引入使用參數
from django.http import JsonResponse
import json
  1. 判斷輸入類型
if request.method == 'POST':
else:
    outputinfo['資料錯誤'] = "請使用POST輸入"
  1. 輸入JSON類型資料
data = json.loads(request.body)
Grade = data['Grade']
Class = data['Class']
Gender = data['Gender']
Number = data['Number']
Name = data['Name']
  1. 判斷輸入欄位不為空
if Grade != '' and Class != '' and Gender != '' and Number != '' and Name!='':
else:
    outputinfo['資料錯誤'] = "輸入資料不為空"
  1. 以姓名判斷資料表中是否有相同資料
count = Classlist.objects.filter(Name=Name).count()
if count == 0:
else:
    outputinfo['資料錯誤']= "姓名已存在"
  1. 在資料表中新增一筆資料
classlistDB = Classlist.objects.create(Grade=Grade,Class=Class,Gender=Gender,
                                       Number=Number,Name=Name)
  1. 輸出結果
outputinfo = {"資料輸入成功,輸出結果": 
             {"Grade": classlistDB.Grade,
              "Class": classlistDB.Class,
              "Gender": classlistDB.Gender,
              "Number": classlistDB.Number,
              "Name": classlistDB.Name,
              "Upload_Time": classlistDB.Upload_Time,
              "Last_Modified": classlistDB.Last_Modified}}
  1. 回傳JSON格式
return JsonResponse(outputinfo,safe=False,
                    json_dumps_params={'ensure_ascii': False})

Views.py部分就先設定到這裡,需要花一些時間消化理解一下哦!
下回再處理其他的設定,先到這裡,大家掰掰~

標題梗來源:北有戰鬥陀螺 (?)


上一篇
職務(植物)代理人 建立資料表 江狗(Django) 鐵人Day12
下一篇
南無阿彌陀螺 (?) 設定資料庫(下) 江狗(Django) 鐵人Day14
系列文
Django新手指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言