Django 注册/登录

1、首先创建一个Django项目,在自动生成的templates中写两个html文件

login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>
</head>
<body>
    <h1>登录</h1>
    <form action="/login/" method="post">
        用户名:<input type="text" name="请输入用户名" style="margin-left:18px;margin-top:20px" autocomplete="off"><br>
        密  码:<input type="password" name="请输入密码" style="margin-left:30px;margin-top:20px" autocomplete="off"><br>
        <input type="submit" value="登录" style="margin-left:80px;margin-top:20px"><br>
    </form>
</body>
</html>

 register.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>register</title>
</head>
<body>
    <h1>注册</h1>
    <form action="" method="post">
        用户名:<input type="text" name="请输入用户名" style="margin-left:18px;margin-top:10px" autocomplete="off"><br><br>
        密码:<input type="password" name="请输入密码" style="margin-left:33px;margin-top:10px" autocomplete="off"><br><br>
        确认密码:<input type="password" name="请输入确认密码" style="margin-top:10px" autocomplete="off"><br><br>
        <input type="submit" value="注册" style="margin-left:80px;margin-top:10px" style='background-color:red'><br>
    </form>
</body>
</html>

修改url.py如下:

from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from Test import views   #导入Test应用的views文件

urlpatterns = [
    path('admin/', admin.site.urls),
    # url(r'index/',views.index),#添加index/的路径配置
    url(r'^login', views.login),
    url(r'^register', views.register),
]

创建类,将models.py里的代码修改如下:

from django.db import models
# Create your models here.
class User(models.Model):
    id = models.AutoField(primary_key=True)
    username = models.CharField(max_length=50)
    password = models.CharField(max_length=50)

将views.py里的代码修改如下:

from django.shortcuts import render, HttpResponse, redirect
from Test import models
# Create your views here.
def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')
    if request.method == 'POST':
        username = request.POST.get('请输入用户名')
        password = request.POST.get('请输入密码')
        user_obj = models.User.objects.filter(name=username, pwd=password).first()
        if user_obj:
            return HttpResponse('登录成功')
        else:
            return HttpResponse('用户名或密码错误')

def register(request):
    if request.method == 'GET':
        return render(request, 'register.html')
    if request.method == 'POST':
        username = request.POST.get('请输入用户名')
        password = request.POST.get('请输入密码')
        repeat_password = request.POST.get('请输入确认密码')
        if not username:
            return HttpResponse('用户名不能为空')
        if not password:
            return HttpResponse('密码不能为空')
        if not repeat_password:
            return HttpResponse('确认密码不能为空')
        if username and password and repeat_password:
            if password == repeat_password:
                # filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表
                user_project = models.User.objects.filter(name=username).first()
                if user_project:
                    return HttpResponse('用户名已存在')
                else:
                    models.User.objects.create(name=username, pwd=password).save()
                    return redirect('/login/')
            else:
                return HttpResponse('两次输入的密码不一致')

在这里插入图片描述

接下来创建数据库表
1、打开cmd窗口,cd切换到manage.py目录下,输入如下两条命令,即可创建数据表

  1. python manage.py makemigrations
  2. python manage.py migrate
     

2、运行项目
打开cmd窗口,cd切换到manage.py目录下,输入:

python manage.py runserver

在浏览器中输入:http://127.0.0.1:8000/register/

在浏览器中输入:http://127.0.0.1:8000/login/

大功告成!!!

发布了131 篇原创文章 · 获赞 220 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/qq_38900441/article/details/104344691