1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124 | from django.shortcuts import render, redirect
from myapp.models import vegetableDB
from myapp.forms import PostForm, PostForm2
from django.contrib.auth import authenticate
from django.contrib import auth
from django.contrib.auth.models import User
from django.http import HttpResponse
# Create your views here.
def index(request):
slide1 = {'image':'fruits01.jpg', 'active':'active', 'interval':'10000', 'title':'水果01', 'subtitle':'好水果在雲林'}
slide2 = {'image':'fruits02.jpg', 'active':'', 'interval':'2000', 'title':'水果02', 'subtitle':'好水果在雲林'}
slide3 = {'image':'fruits03.jpg', 'active':'', 'interval':'3000', 'title':'水果03', 'subtitle':'好水果在雲林'}
slides = [slide1, slide2, slide3]
if 'login' in request.session:
login = request.session['login']
else:
login = 0
return render(request, 'index.html', locals())
def vegetable(request):
vegetables = vegetableDB.objects.all().order_by('id')
return render(request, 'vegetable.html', locals())
def fruit(request):
return render(request, 'fruit.html', locals())
def post1(request):
if request.method == "POST":
image1 = request.POST['image']
title1 = request.POST['title']
subtitle1 = request.POST['subtitle']
#新增一筆記錄
unit = vegetableDB.objects.create(image=image1, title=title1, subtitle=subtitle1)
unit.save()
return redirect('/')
else:
message = '請輸入資料(資料不作驗證)'
return render(request, "post1.html", locals())
def post2(request): #新增資料,資料必須通過驗證
if request.method == "POST": #如果是以POST方式才處理
postform = PostForm(request.POST) #建立forms物件
if postform.is_valid(): #通過forms驗證
image1 = postform.cleaned_data['image'] #取得表單輸入資料
title1 = postform.cleaned_data['title']
subtitle1 = postform.cleaned_data['subtitle']
#新增一筆記錄
unit = vegetableDB.objects.create(image=image1, title=title1, subtitle=subtitle1)
unit.save()
return redirect('/')
else:
message = '驗證碼錯誤!'
else:
message = 'image, title, subtitle'
postform = PostForm()
return render(request, "post2.html", locals())
def edit(request,id=None,mode=None):
if mode == "edit": # 由 edit.html 按 submit
unit = vegetableDB.objects.get(id=id) #取得要修改的資料記錄
unit.image=request.GET['image']
unit.title=request.GET['title']
unit.subtitle=request.GET['subtitle']
unit.save() #寫入資料庫
return redirect('/vegetable/')
else: # 由網址列
try:
unit = vegetableDB.objects.get(id=id) #取得要修改的資料記錄
except:
message = "此 id不存在!"
return render(request, "edit.html", locals())
def login(request):
if request.method == 'POST':
postform2 = PostForm2(request.POST)
if postform2.is_valid():
name = postform2.cleaned_data['username']
password = postform2.cleaned_data['pd']
user = authenticate(username=name, password=password)
if user is not None:
if user.is_active:
auth.login(request,user)
message = '登入成功!'
request.session['login']=1
return redirect('/index/')
else:
message = '帳號尚未啟用!'
request.session['login']=0
else:
request.session['login']=0
return redirect('/index/')
else:
postform2 = PostForm2()
return render(request, "login.html", locals())
def logout(request):
auth.logout(request)
request.session['lgoin']=0
return redirect('/index/')
def register(request):
if request.method == 'POST':
name = request.POST['username']
first_name = request.POST['first_name']
last_name = request.POST['last_name']
password = request.POST['password']
email = request.POST['email']
user = authenticate(username=name, password=password)
try:
user=User.objects.get(username=name)
except:
user=None
if user!=None:
message = user.username + " 帳號已建立!<a href='/index/'>Home</a>"
return HttpResponse(message)
else: # 建立 test 帳號
user=User.objects.create_user(name,email,password)
user.first_name=first_name
user.last_name=last_name
user.is_staff=True
user.save()
return redirect('/index/')
return render(request, "register.html", locals())
|