Python框架Django实现简单注册登录功能

环境搭建以及项目创建可以参考上一篇文章,这里我就略过了
Anaconda搭建django环境和创建项目

下面直接开始
环境:Python 3.5    Django 2.2.1

1.创建独立app
建议独立app的好处是功能模块化,后期更易维护

  • 创建app
    在这里插入图片描述

  • 在项目配置文件中添加app名称
    在这里插入图片描述

2.创建模型models

  • 构建User表
class User(models.Model):
    username = models.CharField(max_length=32)
    email = models.EmailField()
    password = models.CharField(max_length=32)

在这里插入图片描述

  • 生成迁移文件、执行迁移
    python manage.py makemigrations
    python manage.py migrate

在这里插入图片描述

3.构建注册页面

  • 注意是在User下创建templates文件夹,然后创建和app同名的文件夹 ,因为这样最后在项目整合、收集文件时才不会有问题。
  • csrf_token 是django为用户实现防止跨站请求伪造的功能,简单点说就是进行post请求时,会添加一个随机的校验值到form表单中
<form action="" method="post">
    {% csrf_token %}
    <p>用户名:<input type="text" name="username" placeholder="用户名"></p>
    <p>邮箱:<input type="email" name="email" placeholder="邮箱"></p>
    <p>密码:<input type="password" name="password" placeholder="密码"></p>
    <input type="submit" value="注册">
</form>

在这里插入图片描述
4.构建注册视图函数

from django.shortcuts import render
from User.models import User
# Create your views here.


def register(request):
    if request.method == "POST":
        username = request.POST.get('username')
        email = request.POST.get('email')
        password = request.POST.get('password')
        user = User()
        user.username = username
        user.email = email
        user.password = password
        user.save()
    return render(request,'user/register.html')

在这里插入图片描述

5.构建独立路由

  • 主路由指出子路由
    在这里插入图片描述
  • 子路由指向视图函数
    在这里插入图片描述

6.注册完成

  • 页面进行注册
    在这里插入图片描述
  • 查看数据库是否保存成功
    在这里插入图片描述

注册完成,下面开始登录
登录的页面搭建、路由设置和注册一样,这里就跳过了,直接编写视图函数了

def login(request):
    if request.method == "POST":
        email = request.POST.get('email')
        password = request.POST.get('password')
        user = User.objects.get(email=email)
        if password == user.password:
            return HttpResponse('登录成功')
        else:
            return HttpResponse('登录失败')
    return render(request,'user/login.html')

总结
我这里只是简单的实现登录注册功能,优化的方案还很多,ajax提交,form表单类验证,密码加密处理等等,剩下的各位自由发挥。

发布了3 篇原创文章 · 获赞 12 · 访问量 2657

猜你喜欢

转载自blog.csdn.net/ChenHuang1998/article/details/104068776