1.用户登录代码已经注释
# 用户登录
def login(request):
# get请求获取登录页面
if request.method == 'GET':
return render(request, 'xym/login.html')
# post请求获取信息
if request.method == 'POST':
#the username and account is just a name,you can use any name,
#butthe account name has to be the same like the html file
username = request.POST.get('account') # because is name='account' in html
password = request.POST.get('password')
print(username)#we can print the username if we want to see what it is
print(password)
# 判断账号是否存在
if User.objects.filter(account=username).exists(): # chec kif the user exist
#users这个QuerySet对象存储了用户的所有信息
users = User.objects.filter(account=username) # 获取的是列表类型 # get row from database, index 0 because 1 result
# 检查密码,users.password获取用户密码
# if check_password(password, users[0].password): # check the hashed password of the user
#由于数据库中密码没有使用hash加密,所以直接按下面的方法取判断密码是否正确
if password == users[0].password:
# 将登录的账户名传递给session对象
request.session['account'] = username # store user into session after login
request.session['pika_data']=123
request.session['user_id'] = users[0].user_id
# session is server side database
return HttpResponseRedirect('/xym/addnewhouse/')
else: # wrong password
return HttpResponse('登录密码错误')
else: # wrong user
return HttpResponse('登录账号错误')
代码中相关知识:对象检索
对数据库中对象的检索,是通过model Manage来构造一个QuerySet对象来实现的。每个model类都有一个Manage方法,model类通过objects来调用Manage方法。model对象中没有objects属性。QuerySet对象对象是一个model类对应的实例集合,及数据库对应表的子集。
检索所有的对象:
查找m