Django 实现注册登录需求

本篇文章实现注册登录需求
注册模块创建一个子应用(models)
登录模块创建一个子应用(progects)



前言

前提:
1.创建Django项目
2.创建两个子应用


提示:以下是本篇文章正文内容,下面案例可供参考

一、链接mysql数据库

1-1创建一个mysql数据库
在这里插入图片描述

1-2修改setting中配置

代码如下(示例):

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'ceshi_01',
        'HOST': 'localhost',
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': '',

    }
}

二、定义model

代码如下(示例):

from django.db import models

# Create your models here.

class Student_Models(models.Model):
    sname = models.CharField(max_length=30,unique=True)
    spwd = models.CharField(max_length=30)

#     定义表名
    class Meta:
        db_table = 't_stu'


三、映射,数据迁移

3-1迁移步骤一:生成迁移文件(python manage.py makemigrations)
3-2迁移步骤二:执行迁移(python manage.py migrate)

四、实现需求

需求1:默认访问地址是登录页,登录数据不存在返回至注册页;url:http://127.0.0.1:8000/login/
需求2:注册页面进行注册,入库成功后,跳转至登录页; url:http://127.0.0.1:8000/register/show/

4-1.根路径url

代码如下(示例):

from django.contrib import admin
from django.urls import path, include,re_path

from APPS import progects_views

# 根路由:可以指向一个函数,也可以指向一个应用

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path('',include('progects.urls')),  #通过子应用
    re_path('^register/',include('models.urls')),


]

4-2.登录子应用url

代码如下(示例):

from django.urls import path, re_path
from progects import views

urlpatterns = [
    re_path('login/$', views.login_view),

]

4-3.登录子应用视图

代码如下(示例):

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

# Create your views here.
# 函数或者类的视图
# 登录 url:http://127.0.0.1:8000/login/
def login_view(request):
#     1.默认是到登录页,获取登录页面
    method = request.method
    if method == 'GET':
        return render(request,'login.html')

# 2.获取登录数据
    else:
        username = request.POST.get('usename','')
        password = request.POST.get('pwd','')
# 2.1 查询数据库,数据库数据存在登录成功
        count = Student_Models.objects.filter(sname=username,spwd=password).count()
        if count != 0:
            return HttpResponse('登录成功')
# 2.2查询数据库,数据不存在,返回到注册页面
        else:
            return render(request,'register.html')


4-4.登录login.html

代码如下(示例):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
</head>
<body>
{# action 从根路径开始写#}
<form action="login/" method="post">

    <p>
        <label for="uname">用户名:</label><input type="text" name="usename" id="uname">
    </p>

    <p>
        <label for="pwd">密码:</label><input type="password" name="pwd" id="pwd">
    </p>

    <p>
        <input type="submit" value="登录">
    </p>

</form>
</body>
</html>

4-5.注册子应用url

代码如下(示例):

from django.contrib import admin
from django.urls import path, include,re_path

from models import views

# 根路由:可以指向一个函数,也可以指向一个应用

urlpatterns = {
    # re_path('', views.index_views),
    re_path('show/$', views.register_view)

}

4-6.注册子应用视图

代码如下(示例):

# url:http://127.0.0.1:8000/register/show/
# 1.实现注册
# 2.注册成功以后,查询数据返回数据至页面
def register_view(request):
    # 一:实现注册
    # 1.获取注册页面
    method = request.method
    if method == 'GET':
        return render(request,'register.html')

    # 2.获取页面提交信息
    else:
        username = request.POST.get('uname','')
        password = request.POST.get('pwd','')
    # 3.校验页面信息,是否数据库中存在
        count = Student_Models.objects.filter(sname = username ,spwd=password).count()
        # 3.1 不存在,入库成功后,跳转至登录页面
        if count == 0:
            stu = Student_Models(sname=username,spwd=password)
            stu.save()
            return render(request,'login.html')
        # 3.2 存在,返回响应
        else:
            return HttpResponse("已经存在,请重新试")

4-7.注册前端代码

代码如下(示例):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册页面</title>
</head>
<body>

<form action="/register/show/" method="post">
{#    防止POST提交报错:setting中注释掉跨域请求#}
{#    label里面的for标签内容对应的是后面的id,作用:当用户点击在用户名这三个字的时候,文本框中会被鼠标点中#}

    <p>
        <label for="ua">用户名:</label> <input type="text" name="uname" id="ua">
    </p>

        <p>
        <label for="pas">密码:</label> <input type="password" name="pwd" id="pas">
    </p>
    <input type="submit" value="注册">
</form>
</body>
</html>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值