強(qiáng)力Django第六章7-8用戶注冊

1配置修改
1.1在templates下創(chuàng)建register.html(其中的CSS和JS路徑已修改好了)

<!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>慕學(xué)在線注冊</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="loginbox dialogbox">
    <h1>賬號(hào)登錄</h1>
    <div class="close jsCloseDialog"><img src="../images/dig_close.png"/></div>
    <div class="cont">
        <form id="jsLoginForm" autocomplete="off">
            <div class="box">
                <span class="word3">用戶名</span>
                <input type="text" name="account_l" id="account_l" placeholder="手機(jī)號(hào)/郵箱" />
            </div>
            <div class="box">
                <span class="word2">密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;碼</span>
                <input type="password" name="password_l" id="password_l" placeholder="請(qǐng)輸入您的密碼"/>
            </div>
            <div class="error btns login-form-tips" id="jsLoginTips"></div> <!--登錄錯(cuò)誤提示-->
            <div class="btns">
                <span><input type="checkbox" id="jsAutoLogin" />&nbsp;自動(dòng)登錄</span>
                <span class="forget btn fr">忘記密碼</span>
            </div>
            <div class="button">
                <input type="button" value="登錄" id="jsLoginBtn" />
            </div>
            <div class="btns">
                <span class="fr">沒有賬號(hào)孙蒙?<span class="regist btn">立即注冊</span></span>
            </div>
        </form>
    </div>
</div>
<div class="dialog" id="jsDialog">
    <!--提示彈出框-->
    <div class="successbox dialogbox" id="jsSuccessTips">
        <h1>成功提交</h1>
        <div class="close jsCloseDialog"><img src="../images/dig_close.png"/></div>
        <div class="cont">
            <h2>您的需求提交成功!</h2>
            <p></p>
        </div>
    </div>
    <div  class="noactivebox dialogbox" id="jsUnactiveForm" >
        <h1>郵件驗(yàn)證提示</h1>
        <div class="close jsCloseDialog"><img src="../images/dig_close.png"/></div>
        <div class="center">
            <img src="../images/send.png"/>
            <p>我們已經(jīng)向您的郵箱<span class="green" id="jsEmailToActive">12@13.com</span>發(fā)送了郵件,<br/>為保證您的賬號(hào)安全,請(qǐng)及時(shí)驗(yàn)證郵箱</p>
            <p class="a"><a class="btn" id="jsGoToEmail" target="_blank" >去郵箱驗(yàn)證</a></p>
            <p class="zy_success upmove"></p>
            <p style="display: none;" class="sendE2">沒收到,您可以查看您的垃圾郵件和被過濾郵件酷勺,也可以再次發(fā)送驗(yàn)證郵件(<span class="c5c">60s</span>)</p>
            <p class="sendE">沒收到,您可以查看您的垃圾郵件和被過濾郵件扳躬,<br/>也可以<span class="c5c green" id="jsSenEmailAgin" style="cursor: pointer;">再次發(fā)送驗(yàn)證郵件</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">慕學(xué)在線脆诉,在線學(xué)習(xí)平臺(tái)甚亭!</p>
            <ul class="fr hd-bar">
                <li>服務(wù)電話:<span>4001008031</span></li>
                <li><a href="/login/">[登錄]</a></li>
                <li class="active"><a href="/register/">[注冊]</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="/"></a>
                <h1>用戶注冊</h1>
                <a class="index-font" href="{% url 'index' %}">回到首頁</a>
            </div>
            <div class="fl slide">
                <div class="imgslide">
                    <ul class="imgs">

                        <li><a href=""><img width="483" height="472" src="../images/57a801860001c34b12000460.jpg" /></a></li>

                        <li><a href=""><img width="483" height="472" src="../images/57a801860001c34b12000460.jpg" /></a></li>

                        <li><a href=""><img width="483" height="472" src="../images/57a801860001c34b12000460.jpg" /></a></li>

                    </ul>
                </div>
                <div class="unslider-arrow prev"></div>
                <div class="unslider-arrow next"></div>
            </div>
            <div class="fl form-box">
                <div class="tab">
{#                    <h2 class="active">手機(jī)注冊</h2>#}
                    <h2>郵箱注冊</h2>
                </div>
{#                <div class="tab-form">#}
{#                    <form id="mobile_register_form" autocomplete="off">#}
{#                        <input type='hidden' name='csrfmiddlewaretoken' value='gTZljXgnpvxn0fKZ1XkWrM1PrCGSjiCZ' />#}
{#                        <div class="form-group marb20">#}
{#                            <label>手&nbsp;機(jī)&nbsp;號(hào)</label>#}
{#                            <input id="jsRegMobile" name="account" type="text" placeholder="請(qǐng)輸入您的手機(jī)號(hào)碼" />#}
{#                        </div>-->#}
{#                        <div class="form-group marb20" id="jsRefreshCode">#}
{#                            <label>驗(yàn)&nbsp;證&nbsp;碼</label>#}
{#                            <input autocomplete="off" class="form-control-captcha mobile-register-captcha" id="mobile-register-captcha_1" name="captcha_m_1" placeholder="請(qǐng)輸入驗(yàn)證碼" type="text" /> <input class="form-control-captcha mobile-register-captcha" id="mobile-register-captcha_0" name="captcha_m_0" placeholder="請(qǐng)輸入驗(yàn)證碼" type="hidden" value="29953bacf7005e8469388b449d97d00d523c1706" /> &nbsp;<img src="/captcha/image/29953bacf7005e8469388b449d97d00d523c1706/" alt="captcha" class="captcha" />#}
{#                        </div>#}
{#                        <div class="clearfix">#}
{#                            <div class="form-group marb8 verify-code">#}
{#                                <label>短信驗(yàn)證碼</label>#}
{#                                <input id="jsPhoneRegCaptcha" name="mobile_code" type="text" placeholder="輸入手機(jī)驗(yàn)證碼" />#}
{#                            </div>#}
{#                            <input class="verify-code-btn sendcode" id="jsSendCode" value="發(fā)送驗(yàn)證碼">#}
{#                        </div>#}
{#                        <div class="form-group marb8">#}
{#                            <label>密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;碼</label>#}
{#                            <input id="jsPhoneRegPwd" name="password_m" type="password" placeholder="請(qǐng)輸入6-20位非中文字符密碼" />#}
{#                        </div>#}
{#                        <div class="error btns" id="jsMobileTips"></div>#}
{#                        <div class="auto-box marb8">#}
{##}
{#                        </div>#}
{#                        <input class="btn btn-green" id="jsMobileRegBtn" type="button" value="注冊并登錄" />#}
{#                    </form>#}
{#                    {% csrf_token %}#}
{#                </div>#}
                <div class="tab-form">
                    <form id="email_register_form"  autocomplete="off">
                        <input type='hidden' name='csrfmiddlewaretoken' value='gTZljXgnpvxn0fKZ1XkWrM1PrCGSjiCZ' />
                        <div class="form-group marb20">
                            <label>郵&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;箱</label>
                            <input  type="text" id="id_email" name="email"  placeholder="請(qǐng)輸入您的郵箱地址" />
                        </div>
                        <div class="form-group marb8">
                            <label>密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;碼</label>
                            <input type="password" id="id_password" name="password"  placeholder="請(qǐng)輸入6-20位非中文字符密碼" />
                        </div>
                        <div class="form-group marb8 captcha1">
                            <label>驗(yàn)&nbsp;證&nbsp;碼</label>
                        </div>
                        <div class="error btns" id="jsEmailTips"></div>
                        <div class="auto-box marb8">
                        </div>
                        <input class="btn btn-green" id="jsEmailRegBtn" type="button" value="注冊并登錄" />
                    {% csrf_token %}
                    </form>
                </div>
                <p class="form-p">已有賬號(hào)?<a href="login.html">[立即登錄]</a></p>
            </div>
        </div>
    </div>
</section>

<input id="isLogin" type="hidden" value="False"/>
<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/validateDialog.js' %}"  type="text/javascript"></script>
<script src="{% static 'js/login.js' %}"  type="text/javascript"></script>
</body>
</html>

1.2 修改index.html 的注冊部分击胜,設(shè)置首頁中的注冊頁面跳轉(zhuǎn)

                       <a style="color:white" class="fr registerbtn" href="{% url 'resgister' %}">注冊</a>

1.3修改views.py 增加新視圖ResgisterView

class ResgisterView(View):
    def get(self, request):
        return render(request, "register.html", {})

1.4修改urls.py

from django.conf.urls import url
# from django.contrib import admin
from django.views.generic import TemplateView
import xadmin

from users.views import LoginView, ResgisterView

urlpatterns = [
    url(r'^xadmin/', xadmin.site.urls),
    url('^$', TemplateView.as_view(template_name="index.html"), name="index"),
    url('^login/$', LoginView.as_view(), name="login"),
    url('^register/$', ResgisterView.as_view(), name="resgister"),
]

重啟服務(wù)亏狰,點(diǎn)擊首頁右上角注冊,進(jìn)出注冊頁面


image.png

2.增加驗(yàn)證碼功能

2.1 查看第三方模塊的安裝文檔
https://github.com/mbi/django-simple-captcha

2.2 安裝django-simple-captcha 版本號(hào)0.4.6

pip install django-simple-captcha==0.4.6

2.3 修改setting.py的INSTALLED_APPS部分

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users',
    'courses',
    'organization',
    'operation',
    'xadmin',
    'crispy_forms',
    'captcha',

)

2.4 修改urls.py

from django.conf.urls import url, include
# from django.contrib import admin
from django.views.generic import TemplateView
import xadmin

from users.views import LoginView, ResgisterView

urlpatterns = [
    url(r'^xadmin/', xadmin.site.urls),
    url('^$', TemplateView.as_view(template_name="index.html"), name="index"),
    url('^login/$', LoginView.as_view(), name="login"),
    url('^register/$', ResgisterView.as_view(), name="resgister"),
    url(r'^captcha/', include('captcha.urls')),
]

2.5 pycharm 啟動(dòng)Run manage.py task偶摔,然后先后執(zhí)行下面的命令

makemigrations

migrate

執(zhí)行成功后會(huì)在數(shù)據(jù)庫生成表captcha_captchastore

2.6 增加forms驗(yàn)證,更新forms.py暇唾,新增類 RegisterForm

# _*_ encoding:utf-8 _*_
__author__ = 'luky'
__date__ = '2018/4/23 10:44'

from django import forms
from captcha.fields import CaptchaField


class LoginForm(forms.Form):
    username = forms.CharField(required=True)
    password = forms.CharField(required=True, min_length=5) #設(shè)置必填,最小長度5辰斋,不符合不去查數(shù)據(jù)庫策州。


class RegisterForm(forms.Form):
    enmail = forms.EmailField(required=True)
    password = forms.CharField(required=True, min_length=5)
    captcha = CaptchaField(error_messages={"invalid":u"驗(yàn)證碼錯(cuò)誤"})

2.7更新views.py 加入form/post

# _*_ encoding:utf-8 _*_
__author__ = 'luky'
__date__ = '2018/4/12 15:46'

from django.shortcuts import render
from django.contrib.auth import authenticate, login

#1自定義登陸的字段,用戶名或者email都行
from django.contrib.auth.backends import ModelBackend
from django.db.models import Q

from django.views.generic.base import View
# 密碼明文加密函數(shù)
from django.contrib.auth.hashers import make_password

# Create your views here.
from .models import UserProfile
from.forms import LoginForm, RegisterForm


class CustomBackend(ModelBackend):
    def authenticate(self, username=None, password=None, **kwargs):
        try:
            user = UserProfile.objects.get(Q(username=username)|Q(email=username))
            if user.check_password(password):
                return user
        except Exception as e:
            return None


class ResgisterView(View):
    def get(self, request):
        register_form = RegisterForm()
        return render(request, "register.html", {'register_form':register_form})

    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get("username", "")
            pass_word = request.POST.get("password", "")
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.password = make_password(pass_word)
            user_profile.save()



class LoginView(View):
    def get(self, request):
        return render(request, "login.html", {})

    def post(self, request):
        # 增加form組件對(duì)用戶提交的表單進(jìn)行預(yù)處理亡呵,驗(yàn)證參數(shù)是否正確
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            user_name = request.POST.get("username", "")
            pass_word = request.POST.get("password", "")
            user = authenticate(username=user_name, password=pass_word)
            if user is not None:
                login(request, user)
                return render(request, "index.html")
            else:
                # 2{"msg":"用戶名密碼輸入錯(cuò)誤抽活!"}定義數(shù)據(jù)庫查詢后驗(yàn)證的報(bào)錯(cuò)輸硫戈。在login.html代碼中加入
                return render(request, "login.html", {"msg": "用戶名密碼輸入錯(cuò)誤锰什!"})
        else:
            #3{"login_form":login_form}定義form驗(yàn)證報(bào)錯(cuò)輸。在login.html代碼中加入
            return render(request, "login.html", {"login_form":login_form})

2.8 更新 register.html, 在后半段加入 {{ register_form.captcha }}和method="post" action="{% url 'resgister' %}"部分

<!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>慕學(xué)在線注冊</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="loginbox dialogbox">
    <h1>賬號(hào)登錄</h1>
    <div class="close jsCloseDialog"><img src="../images/dig_close.png"/></div>
    <div class="cont">
        <form id="jsLoginForm" autocomplete="off">
            <div class="box">
                <span class="word3">用戶名</span>
                <input type="text" name="account_l" id="account_l" placeholder="手機(jī)號(hào)/郵箱" />
            </div>
            <div class="box">
                <span class="word2">密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;碼</span>
                <input type="password" name="password_l" id="password_l" placeholder="請(qǐng)輸入您的密碼"/>
            </div>
            <div class="error btns login-form-tips" id="jsLoginTips"></div> <!--登錄錯(cuò)誤提示-->
            <div class="btns">
                <span><input type="checkbox" id="jsAutoLogin" />&nbsp;自動(dòng)登錄</span>
                <span class="forget btn fr">忘記密碼</span>
            </div>
            <div class="button">
                <input type="button" value="登錄" id="jsLoginBtn" />
            </div>
            <div class="btns">
                <span class="fr">沒有賬號(hào)丁逝?<span class="regist btn">立即注冊</span></span>
            </div>
        </form>
    </div>
</div>
<div class="dialog" id="jsDialog">
    <!--提示彈出框-->
    <div class="successbox dialogbox" id="jsSuccessTips">
        <h1>成功提交</h1>
        <div class="close jsCloseDialog"><img src="../images/dig_close.png"/></div>
        <div class="cont">
            <h2>您的需求提交成功汁胆!</h2>
            <p></p>
        </div>
    </div>
    <div  class="noactivebox dialogbox" id="jsUnactiveForm" >
        <h1>郵件驗(yàn)證提示</h1>
        <div class="close jsCloseDialog"><img src="../images/dig_close.png"/></div>
        <div class="center">
            <img src="../images/send.png"/>
            <p>我們已經(jīng)向您的郵箱<span class="green" id="jsEmailToActive">12@13.com</span>發(fā)送了郵件,<br/>為保證您的賬號(hào)安全霜幼,請(qǐng)及時(shí)驗(yàn)證郵箱</p>
            <p class="a"><a class="btn" id="jsGoToEmail" target="_blank" >去郵箱驗(yàn)證</a></p>
            <p class="zy_success upmove"></p>
            <p style="display: none;" class="sendE2">沒收到嫩码,您可以查看您的垃圾郵件和被過濾郵件,也可以再次發(fā)送驗(yàn)證郵件(<span class="c5c">60s</span>)</p>
            <p class="sendE">沒收到罪既,您可以查看您的垃圾郵件和被過濾郵件铸题,<br/>也可以<span class="c5c green" id="jsSenEmailAgin" style="cursor: pointer;">再次發(fā)送驗(yàn)證郵件</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">慕學(xué)在線,在線學(xué)習(xí)平臺(tái)琢感!</p>
            <ul class="fr hd-bar">
                <li>服務(wù)電話:<span>4001008031</span></li>
                <li><a href="/login/">[登錄]</a></li>
                <li class="active"><a href="/register/">[注冊]</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="/"></a>
                <h1>用戶注冊</h1>
                <a class="index-font" href="{% url 'index' %}">回到首頁</a>
            </div>
            <div class="fl slide">
                <div class="imgslide">
                    <ul class="imgs">

                        <li><a href=""><img width="483" height="472" src="../images/57a801860001c34b12000460.jpg" /></a></li>

                        <li><a href=""><img width="483" height="472" src="../images/57a801860001c34b12000460.jpg" /></a></li>

                        <li><a href=""><img width="483" height="472" src="../images/57a801860001c34b12000460.jpg" /></a></li>

                    </ul>
                </div>
                <div class="unslider-arrow prev"></div>
                <div class="unslider-arrow next"></div>
            </div>
            <div class="fl form-box">
                <div class="tab">
{#                    <h2 class="active">手機(jī)注冊</h2>#}
                    <h2>郵箱注冊</h2>
                </div>
{#                <div class="tab-form">#}
{#                    <form id="mobile_register_form" autocomplete="off">#}
{#                        <input type='hidden' name='csrfmiddlewaretoken' value='gTZljXgnpvxn0fKZ1XkWrM1PrCGSjiCZ' />#}
{#                        <div class="form-group marb20">#}
{#                            <label>手&nbsp;機(jī)&nbsp;號(hào)</label>#}
{#                            <input id="jsRegMobile" name="account" type="text" placeholder="請(qǐng)輸入您的手機(jī)號(hào)碼" />#}
{#                        </div>-->#}
{#                        <div class="form-group marb20" id="jsRefreshCode">#}
{#                            <label>驗(yàn)&nbsp;證&nbsp;碼</label>#}
{#                            <input autocomplete="off" class="form-control-captcha mobile-register-captcha" id="mobile-register-captcha_1" name="captcha_m_1" placeholder="請(qǐng)輸入驗(yàn)證碼" type="text" /> <input class="form-control-captcha mobile-register-captcha" id="mobile-register-captcha_0" name="captcha_m_0" placeholder="請(qǐng)輸入驗(yàn)證碼" type="hidden" value="29953bacf7005e8469388b449d97d00d523c1706" /> &nbsp;<img src="/captcha/image/29953bacf7005e8469388b449d97d00d523c1706/" alt="captcha" class="captcha" />#}
{#                        </div>#}
{#                        <div class="clearfix">#}
{#                            <div class="form-group marb8 verify-code">#}
{#                                <label>短信驗(yàn)證碼</label>#}
{#                                <input id="jsPhoneRegCaptcha" name="mobile_code" type="text" placeholder="輸入手機(jī)驗(yàn)證碼" />#}
{#                            </div>#}
{#                            <input class="verify-code-btn sendcode" id="jsSendCode" value="發(fā)送驗(yàn)證碼">#}
{#                        </div>#}
{#                        <div class="form-group marb8">#}
{#                            <label>密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;碼</label>#}
{#                            <input id="jsPhoneRegPwd" name="password_m" type="password" placeholder="請(qǐng)輸入6-20位非中文字符密碼" />#}
{#                        </div>#}
{#                        <div class="error btns" id="jsMobileTips"></div>#}
{#                        <div class="auto-box marb8">#}
{##}
{#                        </div>#}
{#                        <input class="btn btn-green" id="jsMobileRegBtn" type="button" value="注冊并登錄" />#}
{#                    </form>#}
{#                    {% csrf_token %}#}
{#                </div>#}
                <div class="tab-form">
                    <form id="email_register_form" method="post" action="{% url 'resgister' %}" autocomplete="off">
                        <input type='hidden' name='csrfmiddlewaretoken' value='gTZljXgnpvxn0fKZ1XkWrM1PrCGSjiCZ' />
                        <div class="form-group marb20">
                            <label>郵&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;箱</label>
                            <input  type="text" id="id_email" name="email"  placeholder="請(qǐng)輸入您的郵箱地址" />
                        </div>
                        <div class="form-group marb8">
                            <label>密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;碼</label>
                            <input type="password" id="id_password" name="password"  placeholder="請(qǐng)輸入6-20位非中文字符密碼" />
                        </div>
                        <div class="form-group marb8 captcha1">
                            <label>驗(yàn)&nbsp;證&nbsp;碼</label>
                            {{ register_form.captcha }}
                        </div>
                        <div class="error btns" id="jsEmailTips"></div>
                        <div class="auto-box marb8">
                        </div>
                        <input class="btn btn-green" id="jsEmailRegBtn" type="submit" value="注冊并登錄" />
                    {% csrf_token %}
                    </form>
                </div>
                <p class="form-p">已有賬號(hào)丢间?<a href="login.html">[立即登錄]</a></p>
            </div>
        </div>
    </div>
</section>

<input id="isLogin" type="hidden" value="False"/>
<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/validateDialog.js' %}"  type="text/javascript"></script>
<script src="{% static 'js/login.js' %}"  type="text/javascript"></script>
</body>
</html>

配上此時(shí)完整的index.html

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" >
    <title>課程機(jī)構(gòu)列表 - 慕學(xué)在線網(wǎng)</title>
    <link rel="stylesheet" type="text/css" href="/static/css/reset.css">
    <link rel="stylesheet" type="text/css" href="/static/css/animate.css">
    <link rel="stylesheet" type="text/css" href="/static/css/style.css">

    <script src="/static/js/jquery.min.js" type="text/javascript"></script>
    <script src="/static/js/jquery-migrate-1.2.1.min.js" type="text/javascript"></script>

</head>
<body>
<section class="headerwrap ">
    <header>
        <div  class=" header">
            {% if request.user.is_authenticated %}
                <div class="top">
                    <div class="wp">
                        <div class="fl"><p>服務(wù)電話:<b>888888</b></p></div>
                        <!--登陸后跳轉(zhuǎn)-->
                        <div class="personal">
                            <dl class="user fr">
                                <dd>luky<img class="down fr" src="/static/images/top_down.png"/></dd>
                                <dt><img width="20" height="20" src="/static/media/image/2016/12/default_big_14.png"/></dt>
                            </dl>
                            <div class="userdetail">
                                <dl>
                                    <dt><img width="80" height="80" src="/static/media/image/2016/12/default_big_14.png"/></dt>
                                    <dd>
                                        <h2>django</h2>
                                        <p>bobby</p>
                                    </dd>
                                </dl>
                                <div class="btn">
                                    <a class="personcenter fl" href="usercenter-info.html">進(jìn)入個(gè)人中心</a>
                                    <a class="fr" href="/logout/">退出</a>
                                </div>
                            </div>
                        </div>


                </div>
            </div>
                {% else %}
                <div class="top">
                <div class="wp">
                    <div class="fl">
                        <p>服務(wù)電話:<b>888888</b></p>
                    </div>
                        <a style="color:white" class="fr registerbtn" href="{% url 'resgister' %}">注冊</a>
                        <a style="color:white" class="fr loginbtn" href="{% url 'login' %}">登錄</a>
                </div>
             </div>
            {% endif %}

            <div class="middle">
                <div class="wp">
                    <a href="index.html"><img class="fl" src="/static/images/logo.jpg"/></a>
                    <div class="searchbox fr">
                        <div class="selectContainer fl">
                            <span class="selectOption" id="jsSelectOption" data-value="course">
                                公開課
                            </span>
                            <ul class="selectMenu" id="jsSelectMenu">
                                <li data-value="course">公開課</li>
                                <li data-value="org">課程機(jī)構(gòu)</li>
                                <li data-value="teacher">授課老師</li>
                            </ul>
                        </div>
                        <input id="search_keywords" class="fl" type="text" value="" placeholder="請(qǐng)輸入搜索內(nèi)容"/>
                        <img class="search_btn fr" id="jsSearchBtn" src="/static/images/search_btn.png"/>
                    </div>
                </div>
            </div>


            <nav>
                <div class="nav">
                    <div class="wp">
                        <ul>
                            <li class="active" ><a href="index.html">首頁</a></li>
                            <li >
                                <a href="course-list.html">
                                    公開課<img class="hot" src="/static/images/nav_hot.png">
                                </a>
                            </li>
                            <li >
                                <a href="teachers-list.html">授課教師</a>
                            </li>
                            <li ><a href="org-list.html">授課機(jī)構(gòu)</a></li>
                        </ul>
                    </div>
                </div>
            </nav>

            </div>
    </header>
</section>
<!--crumbs start-->



    <div class="banner">
            <div class="wp">
                <div class="fl">
                    <div class="imgslide">
                        <ul class="imgs">

                            <li>
                                    <a >
                                        <img width="1200" height="478" src="/static/media/banner/2016/11/57a801860001c34b12000460.jpg" />
                                    </a>
                                </li>

                            <li>
                                    <a >
                                        <img width="1200" height="478" src="/static/media/banner/2016/11/57aa86a0000145c512000460.jpg" />
                                    </a>
                                </li>

                            <li>
                                    <a >
                                        <img width="1200" height="478" src="/static/media/banner/2016/11/57a801860001c34b12000460_z4Vb8zl.jpg" />
                                    </a>
                                </li>

                            <li>
                                    <a >
                                        <img width="1200" height="478" src="/static/media/banner/2016/11/57aa86a0000145c512000460_nMwvoQD.jpg" />
                                    </a>
                                </li>

                            <li>
                                    <a >
                                        <img width="1200" height="478" src="/static/media/banner/2016/11/57aa86a0000145c512000460_GXIBATC.jpg" />
                                    </a>
                                </li>


                        </ul>
                    </div>
                    <div class="unslider-arrow prev"></div>
                    <div class="unslider-arrow next"></div>
                </div>

                </div>


            </div>
<!--banner end-->
<!--feature start-->
    <section>
        <div class="wp">
            <ul class="feature">
                <li class="feature1">
                    <img class="pic" src="/static/images/feature1.png"/>
                    <p class="center">專業(yè)權(quán)威</p>
                </li>
                <li class="feature2">
                    <img class="pic" src="/static/images/feature2.png"/>
                    <p class="center">課程最新</p>
                </li>
                <li class="feature3">
                    <img class="pic" src="/static/images/feature3.png"/>
                    <p class="center">名師授課</p>
                </li>
                <li class="feature4">
                    <img class="pic" src="/static/images/feature4.png"/>
                    <p class="center">數(shù)據(jù)真實(shí)</p>
                </li>
            </ul>
        </div>
    </section>
<!--feature end-->
<!--module1 start-->
    <section>
        <div class="module">
            <div class="wp">
                <h1>公開課程</h1>
                <div class="module1 eachmod">
                    <div class="module1_1 left">
                        <img width="228" height="614" src="/static/images/module1_1.jpg"/>
                        <p class="fisrt_word">名師授課<br/>專業(yè)權(quán)威</p>
                        <a class="more" href="course-list.html">查看更多課程 ></a>
                    </div>
                    <div class="right group_list">
                        <div class="module1_2 box">
                            <div class="imgslide2">
                                <ul class="imgs">

                                    <li>
                                        <a href="course-detail.html">
                                            <img width="470" height="300" src="/static/media/courses/2016/12/python文件處理.jpg" />
                                        </a>
                                    </li>

                                    <li>
                                        <a href="course-detail.html">
                                            <img width="470" height="300" src="/static/media/courses/2016/12/python面向?qū)ο?jpg" />
                                        </a>
                                    </li>

                                </ul>
                            </div>
                            <div class="unslider-arrow2 prev"></div>
                            <div class="unslider-arrow2 next"></div>
                        </div>

                            <div class="module1_3 box">
                                <a href="course-detail.html">
                                    <img width="233" height="190" src="/static/media/courses/2016/11/mysql.jpg"/>
                                </a>
                                <div class="des">
                                    <a href="course-detail.html">
                                        <h2 title="django入門">django入門</h2>
                                    </a>
                                    <span class="fl">難度:<i class="key">初級(jí)</i></span>
                                    <span class="fr">學(xué)習(xí)人數(shù):3</span>
                                </div>
                                <div class="bottom">
                                    <span class="fl" title="慕課網(wǎng)">慕課網(wǎng)</span>
                                    <span class="star fr">0</span>
                                </div>
                            </div>

                            <div class="module1_4 box">
                                <a href="course-detail.html">
                                    <img width="233" height="190" src="/static/media/courses/2016/11/57035ff200014b8a06000338-240-135.jpg"/>
                                </a>
                                <div class="des">
                                    <a href="course-detail.html">
                                        <h2 title="java入門">java入門</h2>
                                    </a>
                                    <span class="fl">難度:<i class="key">中級(jí)</i></span>
                                    <span class="fr">學(xué)習(xí)人數(shù):0</span>
                                </div>
                                <div class="bottom">
                                    <span class="fl" title="北京大學(xué)">北京大學(xué)</span>
                                    <span class="star fr">0</span>
                                </div>
                            </div>

                            <div class="module1_5 box">
                                <a href="course-detail.html">
                                    <img width="233" height="190" src="/static/media/courses/2016/11/540e57300001d6d906000338-240-135.jpg"/>
                                </a>
                                <div class="des">
                                    <a href="course-detail.html">
                                        <h2 title="python入門">python入門</h2>
                                    </a>
                                    <span class="fl">難度:<i class="key">中級(jí)</i></span>
                                    <span class="fr">學(xué)習(xí)人數(shù):0</span>
                                </div>
                                <div class="bottom">
                                    <span class="fl" title="南京大學(xué)">南京大學(xué)</span>
                                    <span class="star fr">0</span>
                                </div>
                            </div>

                            <div class="module1_6 box">
                                <a href="course-detail.html">
                                    <img width="233" height="190" src="/static/media/courses/2016/11/57035ff200014b8a06000338-240-135_dHfj8Nq.jpg"/>
                                </a>
                                <div class="des">
                                    <a href="course-detail.html">
                                        <h2 title="java入門2">java入門2</h2>
                                    </a>
                                    <span class="fl">難度:<i class="key">高級(jí)</i></span>
                                    <span class="fr">學(xué)習(xí)人數(shù):0</span>
                                </div>
                                <div class="bottom">
                                    <span class="fl" title="慕課網(wǎng)2">慕課網(wǎng)2</span>
                                    <span class="star fr">0</span>
                                </div>
                            </div>

                            <div class="module1_7 box">
                                <a href="course-detail.html">
                                    <img width="233" height="190" src="/static/media/courses/2016/11/57035ff200014b8a06000338-240-135_0nFiBSI.jpg"/>
                                </a>
                                <div class="des">
                                    <a href="course-detail.html">
                                        <h2 title="java入門3">java入門3</h2>
                                    </a>
                                    <span class="fl">難度:<i class="key">初級(jí)</i></span>
                                    <span class="fr">學(xué)習(xí)人數(shù):1</span>
                                </div>
                                <div class="bottom">
                                    <span class="fl" title="慕課網(wǎng)3">慕課網(wǎng)3</span>
                                    <span class="star fr">0</span>
                                </div>
                            </div>

                            <div class="module1_8 box">
                                <a href="course-detail.html">
                                    <img width="233" height="190" src="/static/media/courses/2016/11/540e57300001d6d906000338-240-135_MSIqfvw.jpg"/>
                                </a>
                                <div class="des">
                                    <a href="course-detail.html">
                                        <h2 title="python入門2">python入門2</h2>
                                    </a>
                                    <span class="fl">難度:<i class="key">中級(jí)</i></span>
                                    <span class="fr">學(xué)習(xí)人數(shù):0</span>
                                </div>
                                <div class="bottom">
                                    <span class="fl" title="慕課網(wǎng)666">慕課網(wǎng)666</span>
                                    <span class="star fr">0</span>
                                </div>
                            </div>

                    </div>
                </div>
            </div>
        </div>
    </section>
    <section>
        <div class="module greybg">
            <div class="wp">
                <h1>課程機(jī)構(gòu)</h1>
                <div class="module3 eachmod">
                    <div class="module3_1 left">
                        <img width="228" height="463" src="/static/images/module3_1.jpg"/>
                        <p class="fisrt_word">名校來襲<br/>權(quán)威認(rèn)證</p>
                        <a class="more" href="org-list.html">查看更多機(jī)構(gòu) ></a>
                    </div>
                    <div class="right">
                        <ul>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/11/imooc.png"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="慕課網(wǎng)">慕課網(wǎng)</span></p>
                                    </a>
                                </li>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/11/bjdx.jpg"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="北京大學(xué)">北京大學(xué)</span></p>
                                    </a>
                                </li>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/11/qhdx-logo.png"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="清華大學(xué)">清華大學(xué)</span></p>
                                    </a>
                                </li>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/11/njdx.jpg"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="南京大學(xué)">南京大學(xué)</span></p>
                                    </a>
                                </li>

                                <li class="five">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/11/imooc_klgAUn5.png"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="慕課網(wǎng)2">慕課網(wǎng)2</span></p>
                                    </a>
                                </li>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/11/imooc_Gn1sRjp.png"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="慕課網(wǎng)3">慕課網(wǎng)3</span></p>
                                    </a>
                                </li>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/11/imooc_Y2Tonsq.png"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="慕課網(wǎng)3">慕課網(wǎng)3</span></p>
                                    </a>
                                </li>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/11/imooc_OO2ykYP.png"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="慕課網(wǎng)4">慕課網(wǎng)4</span></p>
                                    </a>
                                </li>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/11/imooc_V0TJOyb.png"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="慕課網(wǎng)5">慕課網(wǎng)5</span></p>
                                    </a>
                                </li>

                                <li class="five">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/11/imooc_qEaMov1.png"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="慕課網(wǎng)666">慕課網(wǎng)666</span></p>
                                    </a>
                                </li>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/12/bjdx.jpg"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="慕學(xué)網(wǎng)">慕學(xué)網(wǎng)</span></p>
                                    </a>
                                </li>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/12/imooc_Gn1sRjp.png"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="python培訓(xùn)機(jī)構(gòu)">python培訓(xùn)機(jī)構(gòu)</span></p>
                                    </a>
                                </li>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/12/bjdx_cCpdUw8.jpg"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="vuejs培訓(xùn)">vuejs培訓(xùn)</span></p>
                                    </a>
                                </li>

                                <li class="">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/12/imooc_klgAUn5.png"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="nodejs培訓(xùn)">nodejs培訓(xùn)</span></p>
                                    </a>
                                </li>

                                <li class="five">
                                    <a href="org-detail-homepage.html">
                                        <div class="company">
                                            <img width="184" height="100" src="/static/media/org/2016/12/bjdx_bcd0m07.jpg"/>
                                            <div class="score">
                                                <div class="circle">
                                                    <h2>全國知名</h2>
                                                </div>
                                            </div>
                                        </div>
                                        <p><span class="key" title="慕學(xué)在線">慕學(xué)在線</span></p>
                                    </a>
                                </li>

                        </ul>
                    </div>
                </div>
            </div>
        </div>
    </section>

<footer>
        <div class="footer">
            <div class="wp">
                <ul class="cont">
                    <li class="logo"><a href=""><img src="/static/images/footlogo.png"/></a></li>
                    <li class="code"><img src="/static/images/code.jpg"/><p class="center">掃描關(guān)注微信</p></li>
                    <li class="third"><img class="fl" src="/static/images/tell.png"/><p class="tell">8888888</p><p class="time">周一至周日 9:00-18:00</p></li>
                </ul>

            </div>
            <p class="line"></p>
            <div class="wp clear">
                <span class="fl">? 2016 www.projectsedu.com 慕學(xué)在線-在線學(xué)習(xí)交流平臺(tái) 保留所有權(quán)利</span>
                <span class="fr">copyright ? 2018 ICP備案證書號(hào):蜀ICP備xxxxx號(hào)-1</span>
            </div>
        </div>
    </footer>

<section>
    <ul class="sidebar">
        <li class="qq">
            <a target="_blank" ></a>
        </li>
        <li class="totop"></li>
    </ul>
</section>
<script src="/static/js/selectUi.js" type='text/javascript'></script>
<script src="/static/js/deco-common.js" type='text/javascript'></script>
<script type="text/javascript" src="/static/js/plugins/laydate/laydate.js"></script>
<script src="/static/js/plugins/layer/layer.js"></script>
<script src="/static/js/plugins/queryCity/js/public.js" type="text/javascript"></script>
<script src="/static/js/unslider.js" type="text/javascript"></script>
<script src="/static/js/plugins/jquery.scrollLoading.js"  type="text/javascript"></script>
<script src="/static/js/deco-common.js"  type="text/javascript"></script>

    <script type="text/javascript" src="/static/js/index.js"></script>

</body>
</html>

具體調(diào)試和展現(xiàn)詳情見視頻


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市驹针,隨后出現(xiàn)的幾起案子烘挫,更是在濱河造成了極大的恐慌,老刑警劉巖柬甥,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饮六,死亡現(xiàn)場離奇詭異,居然都是意外死亡苛蒲,警方通過查閱死者的電腦和手機(jī)卤橄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來臂外,“玉大人虽风,你說我怎么就攤上這事棒口。” “怎么了辜膝?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵无牵,是天一觀的道長。 經(jīng)常有香客問我厂抖,道長茎毁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任忱辅,我火速辦了婚禮七蜘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘墙懂。我一直安慰自己橡卤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布损搬。 她就那樣靜靜地躺著碧库,像睡著了一般。 火紅的嫁衣襯著肌膚如雪巧勤。 梳的紋絲不亂的頭發(fā)上嵌灰,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音颅悉,去河邊找鬼沽瞭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛剩瓶,可吹牛的內(nèi)容都是我干的驹溃。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼延曙,長吁一口氣:“原來是場噩夢啊……” “哼豌鹤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搂鲫,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤傍药,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后魂仍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拐辽,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年擦酌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俱诸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赊舶,死狀恐怖睁搭,靈堂內(nèi)的尸體忽然破棺而出赶诊,到底是詐尸還是另有隱情,我是刑警寧澤园骆,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布舔痪,位于F島的核電站,受9級(jí)特大地震影響锌唾,放射性物質(zhì)發(fā)生泄漏锄码。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一晌涕、第九天 我趴在偏房一處隱蔽的房頂上張望滋捶。 院中可真熱鬧,春花似錦余黎、人聲如沸重窟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巡扇。三九已至,卻和暖如春可缚,著一層夾襖步出監(jiān)牢的瞬間霎迫,已是汗流浹背斋枢。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國打工帘靡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瓤帚。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓描姚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親戈次。 傳聞我的和親對(duì)象是個(gè)殘疾皇子轩勘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容