前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零基础使用Django2.0.1打造在线教育网站(提示):错误贴

零基础使用Django2.0.1打造在线教育网站(提示):错误贴

原创
作者头像
啃饼思录
发布2018-09-13 21:57:11
5270
发布2018-09-13 21:57:11
举报

关于博主

努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

代码语言:txt
复制
                                      微信公众号:  啃饼思录
代码语言:txt
复制
                                    QQ: 2810706745(啃饼小白)

写在前面

最近有小伙伴们私聊我说出现了很多问题,这里特开一个帖子专门用于错误的指导与交流。首先是说注册和激活有问题,我对此进行了测试,发现没有问题,小伙伴们出现这种问题可能是代码粘贴时的位置出现了错误,请各位小伙伴们自己对比一下代码,注意是否对齐(部分代码进行了完善),这里贴一下代码。

注册代码

代码语言:txt
复制
# 用于实现用户注册的函数
class RegisterView(View):
    # get方法直接返回页面
    def get(self, request):
        register_form = RegisterForm()
        return render(request, "register.html", {'register_form': register_form})

    def post(self, request):
        # 类的实例化需要一个字典dict参数,而前面我们就知道request.POST是一个QueryDict,所以可以直接传入POST中的信息
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get("email", "")
            if UserProfile.objects.filter(email=user_name):
                # register_form回填信息必须有,msg是信息提示
                return render(request, 'register.html', {'register_form': register_form}, {'msg': '该邮箱已被注册过了'})

            # password为前端页面name的返回值,取到用户名和密码我们就开始进行登录验证;取不到时为空。
            pass_word = request.POST.get("password", "")
            # 实例化一个user_profile对象,存入前端页面获取的值
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name

            # 默认激活状态为False,也就是未激活
            user_profile.is_active = False

            # 对password进行加密并保存
            user_profile.password = make_password(pass_word)
            user_profile.save()
            send_register_eamil(user_name, 'register')
            return render(request, "login.html", )
        else:
            return render(request, "register.html", {"register_form": register_form})

激活代码

代码语言:txt
复制
# 用于实现用户激活操作的函数
class ActiveUserView(View):
    def get(self, request, active_code):
        # 用于查询邮箱验证码是否存在
        all_record = EmailVerifyRecord.objects.filter(code=active_code)
        # 如果不为空也就是有用户
        active_form = ActiveForm(request.GET)  
        if all_record:
            for record in all_record:
                # 获取到对应的邮箱
                email = record.email
                # 查找到邮箱对应的用户
                user = UserProfile.objects.get(email=email)
                user.is_active = True
                user.save()
                # 激活成功跳转到登录页面
                return render(request, "login.html", )
        else:
            return render(request, "register.html", {"msg": "您的激活链接无效", "active_form": active_form})

其次是突然所有图片显示不了,我调试发现可能是你上传图片的命名格式出了问题,所以我们的访问地址也要配置:两种形式都可以,不过呢建议大家使用第一种,因为第一种是匹配任意位数,第二种则是贪婪匹配:

代码语言:txt
复制
# 第一种
# 配置文件上传的访问处理url
    re_path('media/(?P<path>\d+)', serve, {"document_root": MEDIA_ROOT})
# 第二种
# 配置文件上传的访问处理url
    re_path('media/(?P<path>.*)', serve, {"document_root": MEDIA_ROOT}),

还有因为我这个是Python3+Django2.0,如果你在部署的时候没有新建虚拟环境,那么你就很容易造成Python版本的使用混乱,而Ubuntu自带的Python版本是2.0系列,因此最好是使用虚拟环境来避免这个错误!

目前为止就是这几个问题出的错比较多,如果你发现了其他问题,可以在文章底部留言和我交流~~~

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于博主
  • 写在前面
  • 注册代码
  • 激活代码
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档