Python学习过程遇到的坑-项目(2)

本文详细介绍了Python中数据库对象检索的过程,包括通过model的Manage方法创建QuerySet对象,利用all()和filter()、exclude()方法进行特定数据查询。同时提到了QuerySet的懒加载特性,以及在实际项目中遇到的问题,如登录页面脚本、图片上传显示问题的解决方案,最后讨论了'app' is not a registered namespace的错误。
摘要由CSDN通过智能技术生成
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值