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