Django----利用Django开发会员注册系统

需求描述:

利用Django开发会员注册系统涉及

1、创建数据库用户表模型:用户名、密码等参数

2、将模型注册到后台

3、会员注册系统前端页面开发:用户名、密码、提交跳转路由

4、后端业务逻辑开发:获取注册数据,对用户注册的密码进行加密后存入模型类

5、会员注册系统验证及注意的问题

解决步骤:

通过Django----创建django的第一个应用 已创建【first_django】项目和【myapp】应用,在此基础上进行以下开发步骤。

1、创建数据库用户表模型

(1)在【models.py】文件中定义表的模型类UserInfo

class UserInfo(models.Model):
    username = models.CharField(max_length=40)
    phoneNum = models.CharField(max_length=11)
    password = models.CharField(max_length=40)

(2)在终端中运行命令【python manage.py makemigrations】,生成迁移文件

(3)通过迁移文件生成数据库表,在终端中运行命令【python manage.py migrate】

2、将模型注册到后台

(1)创建超级管理员账号,终端输入命令【python manage.py createsuperuser】

(2)将模型类UserInfo注册到后台

(3)终端输入命令【python manage.py runserver 】启动服务,打开浏览器,登录后台进行验证

新增两条数据后,新增数据显示为UserInfo object(左图),通过【__str__】优化数据显示为username(右图)

      

def __str__(self):
        return self.username  # 优化后台模型的显示

3、会员注册系统前端页面开发

(1)在项目目录下创建【templates】文件夹,该文件夹用于写前端页面,新建【register.html】注册页面

注意:【<form action="/save_data/" method="post">...】点击注册按钮,提交注册数据到【/save_data/】,具体见下文。

【register.html】代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>会员注册页面</title>
    <style>
        .register {
            width: 400px;
            border: 1px solid #ccc;
            margin: 30px auto;
            text-align: center;
        }

        form {
            width: 300px;
            text-align: right;
        }

        input {
            margin-bottom: 20px;
        }
    </style>
</head>

<body>
    <div class="register">
        <h1>会员注册页面</h1>
        <form action="/save_data/" method="post">
            用户名:
            <input type="text" name="username" id=""><br>
            密 码:
            <input type="text" name="password" id=""><br>
            <input type="submit" value="注册">
        </form>
    </div>


</body>

</html>

(2)在【settings.py】文件中配置模板文件

4、后端业务逻辑开发

(1)在【views.py】文件中导入模型类【from myapp.models import UserInfo】和加密模块【import hashlib】,

开发视图函数【register】,返回HTML文件;开发视图函数【save_data】,获取【register.html】页面提交的注册数据(username和password),对密码(password)进行加密处理后存入模型类。

from django.shortcuts import render
from django.http import HttpResponse
from myapp.models import UserInfo
import hashlib


def register(request):
    return render(request, "register.html")


def save_data(request):
    md5 = hashlib.md5()
    username = request.POST.get("username")
    phoneNum = ""  # 初始化默认值
    md5.update(request.POST.get("password").encode("utf-8"))
    password = md5.hexdigest()
    UserInfo.objects.create(
        username=username, phoneNum=phoneNum, password=password)
    return HttpResponse("数据保存成功!")

(2)在【urls.py】文件中导入视图函数【from myapp.views import *】,并将视图函数和路由绑定。

from django.conf.urls import url
from django.contrib import admin
from myapp.views import *

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', index),
    url(r'^register', register),
    url(r'^save_data/', save_data), 
]

5、会员注册系统验证及注意的问题

http://127.0.0.1:8000/register】 注册页面输入数据后,跳转【http://127.0.0.1:8000/save_data/】保存数据页面如下图,存在CSRF验证失败,请求被中断情况。

解决方法:

方法1:在【settings.py】文件中注释掉【'django.middleware.csrf.CsrfViewMiddleware'】

方法2:在【register.html】代码中加入【{% csrf_token %}】

访问【http://127.0.0.1:8000/admin/myapp/userinfo】后找到之前的注册的数据,点开即可发现密码已加密处理。

 

学习笔记,一点一滴记录进步。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值