11import json
22
33from django .http import HttpResponse
4- from django .shortcuts import render
4+ from django .shortcuts import render , redirect
55
6- from demo .models import Subject , Teacher
6+ from demo .forms import UserForm
7+ from demo .models import Subject , Teacher , User , proto
78
89
9- def index (request ):
10+ def login (request ):
11+ if request .method .lower () == 'get' :
12+ return render (request , 'demo/login.html' , {})
13+ else :
14+ username = request .POST ['username' ]
15+ try :
16+ user = User .objects .get (username__exact = username )
17+ password = request .POST ['password' ]
18+ hasher = proto .copy ()
19+ hasher .update (password .encode ('utf-8' ))
20+ if hasher .hexdigest () == user .password :
21+ return redirect ('sub' )
22+ except User .DoesNotExist :
23+ pass
24+ return render (request , 'demo/login.html' ,
25+ {'hint' : '用户名或密码错误' })
26+
27+
28+
29+ def register (request ):
30+ if request .method .lower () == 'get' :
31+ return render (request , 'demo/register.html' ,
32+ {'f' : UserForm ()})
33+ else :
34+ try :
35+ form = UserForm (request .POST )
36+ if form .is_valid ():
37+ form .save (commit = True )
38+ return render (request , 'demo/login.html' ,
39+ {'hint' : '注册成功请登录!' })
40+ else :
41+ return render (request , 'demo/register.html' ,
42+ {'hint' : '请输入有效的注册信息' , 'f' : form })
43+ except :
44+ return render (request , 'demo/register.html' ,
45+ {'hint' : '注册失败, 请尝试其他的用户名!' })
46+
47+
48+ def show_subjects (request ):
1049 ctx = {'subjects_list' : Subject .objects .all ()}
11- return render (request , 'demo/index .html' , ctx )
50+ return render (request , 'demo/subject .html' , ctx )
1251
1352
1453def show_teachers (request , no ):
@@ -17,19 +56,18 @@ def show_teachers(request, no):
1756 return render (request , 'demo/teacher.html' , ctx )
1857
1958
20- def make_good_comment (request , no ):
21- teacher = Teacher .objects .get (pk = no )
22- teacher .good_count += 1
23- teacher .save ()
24- ctx = {'code' : 200 , 'result' : f'好评({ teacher .good_count } )' }
25- return HttpResponse (json .dumps (ctx ),
26- content_type = 'application/json; charset=utf-8' )
27-
28-
29- def make_bad_comment (request , no ):
30- teacher = Teacher .objects .get (pk = no )
31- teacher .bad_count += 1
32- teacher .save ()
33- ctx = {'code' : 200 , 'result' : f'差评({ teacher .bad_count } )' }
59+ def make_comment (request , no ):
60+ ctx = {'code' : 200 }
61+ try :
62+ teacher = Teacher .objects .get (pk = no )
63+ if request .path .startswith ('/good' ):
64+ teacher .good_count += 1
65+ ctx ['result' ] = f'好评({ teacher .gcount } )'
66+ else :
67+ teacher .bad_count += 1
68+ ctx ['result' ] = f'差评({ teacher .bcount } )'
69+ teacher .save ()
70+ except Teacher .DoesNotExist :
71+ ctx ['code' ] = 404
3472 return HttpResponse (json .dumps (ctx ),
3573 content_type = 'application/json; charset=utf-8' )
0 commit comments