1
1
import json
2
2
3
3
from django .http import HttpResponse
4
- from django .shortcuts import render
4
+ from django .shortcuts import render , redirect
5
5
6
- from demo .models import Subject , Teacher
6
+ from demo .forms import UserForm
7
+ from demo .models import Subject , Teacher , User , proto
7
8
8
9
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 ):
10
49
ctx = {'subjects_list' : Subject .objects .all ()}
11
- return render (request , 'demo/index .html' , ctx )
50
+ return render (request , 'demo/subject .html' , ctx )
12
51
13
52
14
53
def show_teachers (request , no ):
@@ -17,19 +56,18 @@ def show_teachers(request, no):
17
56
return render (request , 'demo/teacher.html' , ctx )
18
57
19
58
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
34
72
return HttpResponse (json .dumps (ctx ),
35
73
content_type = 'application/json; charset=utf-8' )
0 commit comments