登录注册案例-数据库

登录注册

1.  进入.html文件确定请求的地址
{%block form%}
<form action=’/login/’>
2.  进入views.py文件
3.  查看models.py文件
4.  设置注册页面register.html
5.  创建.css文件

login.css

p{
    margin:0;
}
#container{
    width:990px;
    margin:0 auto;
}
#container>h2{
    color:#999;
    font-weight:normal;
    margin:50px 0 30px 0;
    padding-bottom:15px;
    border-bottom:1px solid #ccc;
}
#container>p.user-pic{
    float:left;
}

#user-login{
    float:right;
    margin-right:40px;
    margin-top:80px;
}

#user-login .form-line{
    overflow:hidden;
    margin-bottom:20px;
}
#user-login .form-line>p{
    float:left;
    /*宽度,文本右对齐,右外边距,行高,文本颜色*/
    width:64px;
    text-align:right;
    margin-right:40px;
    line-height:40px;
    color:#999;
    height:40px;
}
#user-login .form-line>div{
    float:left;
}
#uphone,#upwd{
    /*宽度,高度,边框,内边距*/
    width:278px;
    height:38px;
    border:1px solid #ccc;
    padding:0 10px;
    color:#555;
    /*取消轮廓,文本大小*/
    outline:none;
    font-size:18px;
}
#uphone:focus,#upwd:focus{
    border-color:#64A131;
    box-shadow:0 0 2px #64A131;
}

#user-login .forget-pwd{
    width:300px;
}
#user-login .forget-pwd p{
    float:right;
}
#user-login .forget-pwd a{
    color:#999;
    text-decoration:underline;
}
#user-login .forget-pwd input{
    width:18px;
    height:18px;
    vertical-align:middle;
}
#user-login .form-btn{
    width:300px;
}
#user-login .form-btn .register{
    float:right;
    width:143px;
    height:38px;
    border:1px solid #64A131;
    background:#F5FFED;
    border-radius:5px;
    font-size:18px;
    text-decoration:none;
    color:#64a131;
    text-align:center;
    line-height:40px;
}
#user-login .form-btn input{
    /*宽度,高度,取消边框,边框倒角,背景颜色,文本颜色,文字大小*/
    width:145px;
    height:40px;
    border:none;
    border-radius:5px;
    background:#64a131;
    color:#fff;
    font-size:18px;
}


/**绝对定位练习*/
#container p.user-pic{
    /*目的是为了配合 a 标记做绝对定位*/
    position:relative;
}
#container p.user-pic a{
    position:absolute;
    left:175px;
    bottom:20px;
    /*宽度,高度,边框,倒角,文字大小,颜色,水平居中,垂直居中*/
    width:153px;
    height:48px;
    border:1px solid #64A131;
    border-radius:5px;
    font-size:18px;
    color:#64a131;
    text-align:center;
    line-height:50px;
    text-decoration:none;
}

#uphone_err{
    margin-top:10px;
}


register.css

.form-control{
    /*宽度,高度,边框,内边距*/
    width:278px;
    height:38px;
    border:1px solid #ccc;
    padding:0 10px;
    color:#555;
    /*取消轮廓,文本大小*/
    outline:none;
    font-size:18px;
}
.form-control:focus{
    border-color:#64A131;
    box-shadow:0 0 2px #64A131;
}
#user-login{
    margin-top:40px;
}

.register.html文件(注册页面)

{%extends 'login.html'%}
{%load static%}

{%block style%}
    <link rel="stylesheet" href="{%static 'css/register.css'%}">
{%endblock%}

{%block title%}
    注册会员
{%endblock%}

{%block btn%}
    <a href="{%url 'login'%}">会员登录</a>
{%endblock%}

{%block form%}
    <form action="/register/" method="post">
    {%csrf_token%}
        <div class="form-line">
            <p>手机号</p>
            <div>
                <input type="text" name="uphone" class="form-control">
                <p id="uphone_err">
                    {{errMsg}}
                </p>
            </div>
        </div>
        <div class="form-line">
            <p>密码</p>
            <div>
                <input type="password" name="upwd" class="form-control">
            </div>
        </div>
        <div class="form-line">
            <p>确认密码</p>
            <div>
                <input type="password" id="cpwd" class="form-control">
            </div>
        </div>
        <div class="form-line">
            <p>用户名称</p>
            <div>
                <input type="text" name='uname' class="form-control">
            </div>
        </div>
        <div class="form-line">
            <p>邮箱</p>
            <div>
                <input type="email" name="uemail" class="form-control">
            </div>
        </div>
        <div class="form-line">
            <p></p>
            <div class="form-btn">
                <a href="{%url 'login'%}" class="register">会员登录</a>
                <input type="submit" value="注册">
            </div>
        </div>
    </form>
{%endblock%}

.models文件

from django.db import models

# Create your models here.


class Users(models.Model):
    uphone = models.CharField(max_length=20, verbose_name='联系方式')
    upass = models.CharField(max_length=50, verbose_name='密码')
    uemail = models.EmailField(verbose_name='邮箱')
    uname = models.CharField(max_length=20, null=True, verbose_name='用户名')
    isActive = models.BooleanField(default=True, verbose_name='启用')

    def __str__(self):
        return self.uname

    class Meta:
        db_table = 'users'
        verbose_name = '用户'
        verbose_name_plural = verbose_name


class GoodsType(models.Model):
    title = models.CharField(max_length=30, verbose_name='类型名称')
    desc = models.TextField(null=True, verbose_name='类型描述')
    picture = models.ImageField(
        upload_to='static/upload/goodstype', verbose_name='类型图片')

    def __str__(self):
        return self.title

    class Meta:
        db_table = 'goodstype'
        verbose_name = '商品类型'
        verbose_name_plural = verbose_name


class Goods(models.Model):
    title = models.CharField(max_length=100, verbose_name='商品名称')
    price = models.DecimalField(
        max_digits=7, decimal_places=2, verbose_name='商品价格')
    spec = models.CharField(max_length=30, verbose_name='商品规格')
    picture = models.ImageField(
        upload_to='static/upload/goods', verbose_name='商品图片')
    isActive = models.BooleanField(default=True, verbose_name='销售中')
    goodsType = models.ForeignKey(GoodsType, null=True)

    def __str__(self):
        return self.title

    class Meta:
        db_table = 'goods'
        verbose_name = '商品信息'
        verbose_name_plural = verbose_name

.urls文件

from django.conf.urls import url
from .views import *

urlpatterns = [
    url(r'^login/$', login_views,name='login'),
    url(r'^register/$', register_views,name='register'),
]

.views文件

from django.shortcuts import render
from django.http import HttpResponse
from .models import *

# Create your views here.


def login_views(request):
    # 判断request.method是get还是post
    if request.method == 'GET':
        return render(request, 'login.html')
    else:
        uphone = request.POST.get('uphone', '')
        upwd = request.POST.get('upwd', '')
        # if uphone and upwd:
        #     users = Users.objects.filter(uphone=uphone, upass=upwd)
        #     if users:
        #         return HttpResponse('登录成功!!')
        #     else:
        #         errMsg = '手机号或密码不正确'
        #         return render(request, 'login.html', locals())
        if uphone and upwd:
            users = Users.objects.filter(uphone=uphone)
            if users:
                u = users[0]
                if upwd == u.upass:
                    return HttpResponse('登录成功')
                else:
                    errMsg = '对不起,输入的密码不正确'
                    return render(request, 'login.html', locals())
            else:
                errMsg = '对不起,手机号码不存在'
                return render(request, 'login.html', locals())
        else:
            errMsg = '手机号或密码不能为空'
            return render(request, 'login.html', locals())


def register_views(request):
    # 判断request.method 得到用户的意图
    if request.method == 'GET':
        return render(request, 'register.html')
    else:
        # 实现注册操作
        uphone = request.POST.get('uphone', '')
        upwd = request.POST.get('upwd', '')
        uname = request.POST.get('uname', '')
        uemail = request.POST.get('uemail', '')

        if uphone and upwd and uname and uemail:
            # 先判断uphone的数据是否存在
            u = Users.objects.filter(uphone=uphone)
            if u:
                errMsg = '手机号码已存在'
                return render(request, 'register.html', locals())
            else:
                Users.objects.create(uphone=uphone, upass=upwd,
                                     uname=uname, uemail=uemail)
                return HttpResponse('注册成功!!!')
        else:
            return HttpResponse('数据不能为空')

.html文件

{%load static%}
<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Document</title>
  <link rel="stylesheet" href="{%static 'css/login.css'%}"> 
  <script src="{%static 'js/jquery-1.11.3.js'%}"></script>
  <script src="{%static 'js/login.js'%}"></script>
    
  {%block style%}
  {%endblock%}

 </head>
 <body>
  <div id="container">
        <!-- 1、上 :会员登录 -->
        <h2>
            {%block title%}
                会员登录
            {%endblock%}
        </h2>
        <!-- 2、下:左,登录图像 -->
        <p class="user-pic">
            <img src="{%static 'images/huiyuan.jpg'%}">
            <!-- 会员注册超链接 -->
            {%block btn%}
                <a href="{%url 'register'%}">会员注册</a>
            {%endblock%}
        </p>
        <!-- 3、下:右,表单以及控件 -->
        <div id="user-login">
            {%block form%}
            <form action="/login/" method="post">
                {%csrf_token%}
                <!-- 1、第一行:手机号 -->
                <div class="form-line">
                    <!-- 左:文本,手机号<p> -->
                    <p>手机号</p>
                    <!-- 右:文本框 <div> -->
                    <div>
                        <input type="text" id="uphone" name="uphone" value="{{u.uphone}}">
                        <p id="uphone_err">
                            {{errMsg}}
                        </p>
                    </div>
                </div>
                <!-- 2、密码 -->
                <div class="form-line">
                    <p>密码</p>
                    <div>
                        <input type="password" id="upwd" name="upwd">
                    </div>
                </div>
                <!-- 3、记住密码 -->
                <div class="form-line">
                    <p></p>
                    <div class="forget-pwd">
                        <p>
                            <a href="#">忘记密码?</a>
                            <a href="#">快捷登录</a>
                        </p>
                        <input type="checkbox" name="isSave">
                        记住密码
                    </div>
                </div>
                <!-- 4、登录 & 注册会员 -->
                <div class="form-line">
                    <p></p>
                    <div class="form-btn">
                        <a href="#" class="register">注册会员</a>
                        <input type="submit" value="登录">
                    </div>
                </div>
            </form>
            {%endblock%}
        </div>
        <!-- 4、增加空块级元素,将container撑起来 -->
        <div style="clear:both;"></div>
    </div>
 </body>
</html>

猜你喜欢

转载自www.cnblogs.com/-hjj/p/9945463.html