慕课网学习python+Django+xadmin打造在线教育平台user app学习总结

学习django这个框架也有一段时间了,一开始接触到这个框架就对这个框架非常的感兴趣,所以就去学习了慕课网上的python升级3.6强力Django+杀手级打造在线教育平台,目前学习完了六个章节,实现了用户登录,用户注册,找回密码功能,觉得有必要先总结总结之前的学习,然后再继续学习。

一开始在Django集成xadmin时碰到了非常非常多的问题,也就是版本的问题,这里放一个解决我一部分bug的链接django2.0集成xadmin0.6报错集锦http://www.lybbn.cn/data/bbsdatas.php?lybbs=50,当然可能还有一些多多少少的问题,我感觉我说不清楚,所以也就不在细说

先说用户登录

第一步:在models.py文件中建立表

首先建立UserProfile表

user的自定义方法可以查阅Django的官方文档

在settings.py文件中要加

AUTH_USER_MODEL = "users.UserProfile"
这条语句


邮箱验证码表和轮播图表的设计

建立好相关表后

ctrl+alt+r 输入

makemigrations users 

然后再输入

migrate users

第二步:创建forms.py文件,在数据库判断前先用LoginForm判断登录表单提交的内容是否符合要求,若不符合,直接返回错误信息,减轻数据库负担


第三步:在views.py中写相关的逻辑

第四步配置url:

url('login/$',LoginView.as_view(),name='login'),

第五步在setting中的INSTALLED_APPS中添加users

前端页面:

<!DOCTYPE html>
<html>
{% load staticfiles %}
<head>
   <meta charset="UTF-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" >
   <title>慕学在线网登录</title>
   <link rel="stylesheet" type="text/css" href="/static/css/reset.css">
   <link rel="stylesheet" type="text/css" href="/static/css/login.css">
</head>
<body>
<div class="dialog" id="jsDialog">
<!--提示弹出框-->
<div class="successbox dialogbox" id="jsSuccessTips">
    <h1>成功提交</h1>
    <div class="close jsCloseDialog"><img src="/static/images/dig_close.png"/></div>
    <div class="cont">
        <h2>您的需求提交成功!</h2>
        <p></p>
    </div>
</div>
<div  class="noactivebox dialogbox" id="jsUnactiveForm" >
    <h1>邮件验证提示</h1>
    <div class="close jsCloseDialog"><img src="/static/images/dig_close.png"/></div>
    <div class="center">
        <img src="/static/images/send.png"/>
        <p>我们已经向您的邮箱<span class="green" id="jsEmailToActive">[email protected]</span>发送了邮件,<br/>为保证您的账号安全,请及时验证邮箱</p>
        <p class="a"><a class="btn" id="jsGoToEmail" target="_blank" href="http://mail.qq.com">去邮箱验证</a></p>
        <p class="zy_success upmove"></p>
        <p style="display: none;" class="sendE2">没收到,您可以查看您的垃圾邮件和被过滤邮件,也可以再次发送验证邮件(<span class="c5c">60s</span></p>
        <p class="sendE">没收到,您可以查看您的垃圾邮件和被过滤邮件,<br/>也可以<span class="c5c green" id="jsSenEmailAgin" style="cursor: pointer;">再次发送验证邮件</span></p>
    </div>
</div>
</div>
<div class="bg" id="dialogBg"></div>
<header>
    <div class="c-box fff-box">
        <div class="wp header-box">
            <p class="fl hd-tips">慕学在线网,在线学习平台!</p>
            <ul class="fr hd-bar">
                <li>服务电话:<span>33333333</span></li>
                <li class="active"><a href="/login/">[登录]</a></li>
                <li><a href="register.html">[注册]</a></li>
            </ul>
        </div>
    </div>
</header>
<section>
    <div class="c-box bg-box">
        <div class="login-box clearfix">
            <div class="hd-login clearfix">
                <a class="index-logo" href="index.html"></a>
                <h1>用户登录</h1>
                <a class="index-font" href="index.html">回到首页</a>
            </div>
            <div class="fl slide">
                <div class="imgslide">
                    <ul class="imgs">
                            <li><a href=""><img width="483" height="472" src="/static/images/mysql.jpg" /></a></li>
                            <li><a href=""><img width="483" height="472" src="/static/images/mysql.jpg" /></a></li>
                            <li><a href=""><img width="483" height="472" src="/static/images/mysql.jpg" /></a></li>
                    </ul>
                </div>
                <div class="unslider-arrow prev"></div>
                <div class="unslider-arrow next"></div>
            </div>
            <div class="fl form-box">
                <h2>帐号登录</h2>
                <form action="/login/" method="post" autocomplete="off">
                    {% csrf_token %}
                    <div class="form-group marb20 {% if login_form.errors.username %}errorput{% endif %} ">
                        <label>&nbsp;&nbsp;</label>
                        <input name="username" id="account_l" type="text" placeholder="手机号/邮箱" />
                    </div>
                    <div class="form-group marb8 {% if login_form.errors.password %}errorput{% endif %} ">
                        <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
                        <input name="password" id="password_l" type="password" placeholder="请输入您的密码" />
                    </div>
                    <div class="error btns login-form-tips" id="jsLoginTips">{% for key,error in login_form.errors.items %}{{ error }}{% endfor %}{{ msg }}</div>
                     <div class="auto-box marb38">

                        <a class="fr" href={% url 'forget_pwd' %}>忘记密码?</a>
                     </div>
                     <input class="btn btn-green" id="jsLoginBtn" type="submit" value="立即登录 > " />

                </form>
                <p class="form-p">没有慕学在线网帐号?<a href="register.html">[立即注册]</a></p>
            </div>
        </div>
    </div>
</section>
<script src="/static/js/jquery.min.js" type="text/javascript"></script>
<script src="/static/js/unslider.js" type="text/javascript"></script>
<script src="/static/js/login.js"  type="text/javascript"></script>
</body>
</html>

最后登录的界面

错误提示:




猜你喜欢

转载自blog.csdn.net/qq_38850493/article/details/80268554