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

关于博主

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

                                      微信公众号:  啃饼思录
                                    QQ: 2810706745(啃饼小白)

写在前面

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

注册代码

# 用于实现用户注册的函数
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})

激活代码

# 用于实现用户激活操作的函数
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})

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

# 第一种
# 配置文件上传的访问处理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系列,因此最好是使用虚拟环境来避免这个错误!

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ml

web基础之Structs(一篇)

为什么有 struts 框架 Struct 的优点之处: 1.       struct的好处 2.       程序更加规范化 3.       程序的可...

3948
来自专栏技术之路

go微服务框架go-micro深度学习(二) 入门例子

    上一篇帖子简单介绍了go-micro的整体框架结构,这一篇主要写go-micro使用方式的例子,中间会穿插一些go-micro的源码,和调用流程图,帮大...

1.7K5
来自专栏北京马哥教育

案例+解读,来自有道大神的17个常用Linux命令深度解析

命令后带(Mac)标记的,表示该命令在Mac OSX下测试,其它的在Debian下测试。 1. grep命令 文本查找命令, 能够使用正则表达式的方式搜索文本...

3345
来自专栏JackeyGao的博客

Django 自定义管理命令

Django 提供了一组非常实用的命令, 可以通过django-admin.py和pytohn manage.py脚本调用. 关于这个Management Co...

2102
来自专栏QQ音乐技术团队的专栏

ContentProvider简介

(一) 基础知识 Content Provider属于Android四大组件之一,相比较而言,它更侧重于共享数据。Android的数据存储方式有以下几种:...

3166
来自专栏求索之路

Android数据层架构的实现 上篇

最近我们app的服务器吃不消了,所以我在为服务器增加缓存层之后,又想到在app端进行二级缓存以减少app对服务器的访问。我想很多app应该在项目的初期架构的时...

3198
来自专栏CSDN技术头条

SpringBoot 核心模块原理剖析

微服务始终一个相对热门的话题,SpringBoot 则以其轻量级、内嵌 Web 容器、一键启动、方便调试等特点被越来越多的微服务实践者所采用。 知其然还要知其所...

4549
来自专栏DOTNET

log4net使用注意事项

1配置Log4net Log4net的配置文件有几种使用方式,这里将配置log4net的部分独立出来,即关于log4net的配置独立成文件log4net.con...

42912
来自专栏Young Dreamer

Vue Router的懒加载路径

1881
来自专栏丑胖侠

Zookeeper开源客户端Curator之Master/Leader选举

在实际生产中,特别是分布式系统中,我们经常遇到这样的场景:一个复杂的任务,近需要从分布式机器中选出一台机器来执行。诸如此类的问题,我们统称为“Master选举”...

42410

扫码关注云+社区

领取腾讯云代金券