from django.shortcuts import render,redirect from app01.models import stu from app01.form import PostForm # Create your views here. def form1(request): if request.method == 'POST': #POST必須大寫 myname = request.POST['myname'] myage = request.POST['myage'] else: myname = '資料沒有採用post傳送' myage = '資料沒有採用post傳送' return render(request,'form1.html',locals()) def show_all(request): items = stu.objects.all() return render(request,'show_all.html',locals()) def add01(request): if request.method == 'POST': myname = request.POST['myname'] mysex = request.POST['mysex'] mybirthday = request.POST['mybirthday'] mymail = request.POST['mymail'] mytel = request.POST['mytel'] myaddress = request.POST['myaddress'] #新增一筆記錄 recd = stu.objects.create(cname=myname,csex=mysex,cbirthday=mybirthday,cmail=mymail,ctel=mytel,caddress=myaddress) recd.save() return redirect('/show_all/') else: message01 = '請輸入資料(資料不作驗證)' return render(request,'add01.html',locals()) def add02(request): if request.method=='POST': #建立form物件 postform = PostForm(request.POST) #如果通過forms驗證 if postform.is_valid(): myname = postform.cleaned_data['myname'] mysex = postform.cleaned_data['mysex'] mybirthday = postform.cleaned_data['mybirthday'] mymail = postform.cleaned_data['mymail'] mytel = postform.cleaned_data['mytel'] myaddress = postform.cleaned_data['myaddress'] #新增一筆記錄 recd = stu.objects.create(cname=myname,csex=mysex,cbirthday=mybirthday,cmail=mymail,ctel=mytel,caddress=myaddress) recd.save() message01 = '已經成功儲存' return redirect('/show_all/') else: message01 = '輸入欄位驗證錯誤' else: message01 = '有幾個欄位是必須輸入的:姓名,生日,性別' postform = PostForm() return render(request,'add02.html',locals()) def del01(request): if request.method=="POST": myid = request.POST['myid'] try: recd = stu.objects.get(id=myid) recd.delete() return redirect('/show_all/') except: message01 = '這個id不存在' return render(request,'del01.html',locals()) def edit01(request): if request.method=='POST': request.session['myid'] = request.POST['myid'] myid = request.POST['myid'] try: recd = stu.objects.get(id=myid) return redirect('/edit02/') except: message01 = '這個id不存在' return render(request,'edit01.html',locals()) def edit02(request): #顯示資料表尚未修改前的數據 myid = request.session['myid'] recd = stu.objects.get(id=myid) myname = recd.cname mysex = recd.csex #修改顯示日期2019年9月19日,改成2019-9-19格式 mybirthday = str(recd.cbirthday).replace('年','-').replace('月','-').replace('日','-') mymail = recd.cmail mytel = recd.ctel myaddress = recd.caddress if request.method=='POST': #若是經由POST傳來,表示已經被修改了 #修改資料表寫法(先查到改變,再覆蓋值) recd = stu.objects.get(id=myid) recd.cname = request.POST['myname'] recd.csex = request.POST['mysex'] recd.cbirthday = request.POST['mybirthday'] recd.cmail = request.POST['mymail'] recd.ctel = request.POST['mytel'] recd.caddress = request.POST['myaddress'] recd.save() #修改完畢 return redirect('/show_all/') return render(request,'edit02.html',locals()) #使用get方法傳遞,新增一筆 def add03(request,mode=None): #因為網頁預設就是GET方法,所以雖然沒有按submit,也是用get方法,所以不能用request.method == 'GET'來判別是否按了submit #改良方法:用第二個參數mode #if request.method == 'GET': if mode == 'save': myname = str(request.GET.get('myname')) mysex = str(request.GET.get('mysex')) mybirthday = str(request.GET.get('mybirthday')) mymail = str(request.GET.get('mymail')) mytel = str(request.GET.get('mytel')) myaddress = str(request.GET.get('myaddress')) #新增一筆記錄 recd = stu.objects.create(cname=myname,csex=mysex,cbirthday=mybirthday,cmail=mymail,ctel=mytel,caddress=myaddress) recd.save() return redirect('/show_all/') else: message01 = '請輸入資料(資料不作驗證)' return render(request,'add03.html',locals()) def add04(request): if request.GET.get('submitButton') =='送出': myname = request.GET.get('myname') myname = str(request.GET.get('myname')) mysex = str(request.GET.get('mysex')) mybirthday = str(request.GET.get('mybirthday')) mymail = str(request.GET.get('mymail')) mytel = str(request.GET.get('mytel')) myaddress = str(request.GET.get('myaddress')) #新增一筆記錄 recd = stu.objects.create(cname=myname,csex=mysex,cbirthday=mybirthday,cmail=mymail,ctel=mytel,caddress=myaddress) recd.save() return redirect('/show_all/') else: message01 = '請輸入資料(資料不作驗證)' return render(request,'add04.html',locals()) def show_all05(request): items = stu.objects.all() return render(request,'show_all05.html',locals()) def del05(request): if request.method=="GET": #兩種get取值方法都可以 myid = request.GET.get('myid') #myid = request.GET['myid'] message01 = myid recd = stu.objects.get(id=myid) recd.delete() return redirect('/show_all05/') def edit05(request): if request.method=="GET": #兩種get取值方法都可以 myid = request.GET.get('myid') #myid = request.GET['myid'] return redirect('/edit05/?myid=myid') def edit05(request): if request.method=="GET": #顯示資料表尚未修改前的數據 myid = request.GET['myid'] recd = stu.objects.get(id=myid) myname = recd.cname mysex = recd.csex #修改顯示日期2019年9月19日,改成2019-9-19格式 mybirthday = str(recd.cbirthday).replace('年','-').replace('月','-').replace('日','-') mymail = recd.cmail mytel = recd.ctel myaddress = recd.caddress return render(request,'edit05.html',locals()) elif request.method=='POST': #若是經由POST傳來,表示已經被修改了 #修改資料表寫法(先查到改變,再覆蓋值) myid = request.POST['myid'] recd = stu.objects.get(id=myid) recd.cname = request.POST['myname'] recd.csex = request.POST['mysex'] recd.cbirthday = request.POST['mybirthday'] recd.cmail = request.POST['mymail'] recd.ctel = request.POST['mytel'] recd.caddress = request.POST['myaddress'] recd.save() #修改完畢 return redirect('/show_all05/')