Django之登录、注册模块

前言

    在之前做的豆瓣读书查询基础上,添加一个登录、注册页面

 

操作

    1.将默认数据库配置为mysql,在DouBan/setting.py中进行修改

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'doubanDB', #数据库名,要提前建好
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': 'localhost',
        'PORT': 3306,
    }
}

 

    2.在DouBan/__init__.py中添加

import pymysql
pymysql.install_as_MySQLdb()

     # 如果报错 mysqlclient 1.4.0 or newer is required;
     # 使用下述代码 

import pymysql
pymysql.version_info = (1, 4, 13, "final", 0)
pymysql.install_as_MySQLdb()  # 使用pymysql代替mysqldb连接数据库

    3.在BookList/models.py输入

class User(models.Model):        
    id = models.AutoField(primary_key=True)     
    name = models.CharField(max_length=32) 
    password = models.CharField(max_length=32)

    def __str__(self):
        return self.name
    class Meta:
        verbose_name = '用户'
        verbose_name_plural = '用户'

 

    4.添加一个DouBan.html,包含注册、登录功能

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Home</title>

<link rel="stylesheet" type="text/css" href="../static/css/particle.css" />
<link rel="stylesheet" type="text/css" href="../static/css/style.css">
<link href='http://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>

<script type='text/javascript' src='../static/js/jquery.particleground.js'></script>
<script type='text/javascript' src='../static/js/demo.js'></script>


</head>
<body>
	<div id="mainB">

		<div id="ToolBar">
			<div class="tags">
				<img src="../static/img/man.png" style="CURSOR: pointer" id="Login" />
			</div>
			<div class="tags">
				<img src="../static/img/man.png" style="CURSOR: pointer" id="Register" />
			</div>
		</div>

		<div id="tips">
			<div class="tagsTXT">登录</div>
			<div class="tagsTXT">注册</div>
		</div>

		<div id="loginForm">
			<div style="float: right;">
				<button class="off" onclick="offLoginPanel();">✘</button>
			</div>
			<form action="/login/" method="post">
				<p style="padding-left: 100px;color: black;top:20px;">Login</p>

				<p style="padding-left: 40px;">
					<input type="text" name="username" id="username" placeholder="Name" style="width: 200px;" />
				</p>

				<p style="padding-left: 40px;">
					<input type="password" name="pwd" id="pwd" placeholder="Password" style="width: 200px;" />
				</p>

				<span style="float: right; margin-right: 25px;"> 
				    <input type="submit" value="登录" style="width: 60px; text-align: center;" />
				</span>
			</form>
		</div>

		<div id="registerForm">
			<div style="float: right;">
				<button class="off" onclick="offRegisterPanel();">✘</button>
			</div>
			<form action="/register/" method="post">
				<p style="padding-left: 100px;color: black;top:20px;">Register</p>

				<p style="padding-left: 40px;">
					<input type="text" name="username" id="username" placeholder="Name" style="width: 200px;" />
				</p>

				<p style="padding-left: 40px;">
					<input type="password" name="pwd" id="pwd" placeholder="Password" style="width: 200px;" />
				</p>

				<span style="float: right; margin-right: 25px;"> 
				    <input type="submit" value="注册" style="width: 60px; text-align: center;" />
				</span>
			</form>
		</div>
	</div>

	<script type='text/javascript' src='../static/js/jquery-3.4.1.js'></script>
	<script type='text/javascript'  src='../static/js/action.js'> </script>

</body>
</html>


 

    5.设置css、js、img路径(在templates同级目录下创建static文件夹,在DouBan/settings.py中设置)

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(os.path.join(BASE_DIR, 'static')),
)

 

    6.修改DouBan/urls.py

from BookList.views import *
urlpatterns = [
    path('admin/', admin.site.urls),
    path('typeBook/',BookCrawlPage),
    path('mainBook/',mainBookPage),
    path('register/',register),
    path('login/',login),
    path('index/',index)
]

 

    7.在manage.py同级目录下,进入cmd输入

python manage.py makemigrations

python manage.py migrate

 

    8.查看mysql,是否生成

 

    9. 修改BookList/views.py

from BookList.models import User
from django.shortcuts import redirect 

def index(request):
    render(request,'DouBan.html')

def login(request):
    if request.method=='POST':
        name = request.POST.get('username')
        pwd = request.POST.get('pwd')
        if User.objects.filter(name=name):
            if User.objects.filter(name=name)[0].password==pwd:
                return redirect('/mainBook/')
            else:
                return HttpResponse('密码错误')
        else:
            HttpResponse('用户不存在')
    return render(request,'DouBan.html')


def register(request):
    if request.method=='POST':
        username = request.POST.get('username')
        password = request.POST.get('pwd')
        
        if User.objects.filter(name=username):
            return HttpResponse('该账号已经注册')
        else:
            user_obj = User(name=username,password=password)
            user_obj.save()
            return HttpResponse('注册成功')
    return render(request,'DouBan.html')

 

    10.查看效果

   

    11.查看数据库

 

    12.创建超级用户管理页面,根据要求输入用户名、密码和邮箱

python manage.py createsuperuser

   

    13.在BookList/admin.py注册模块

from BookList.models import User

admin.site.register(User)

 

    14.登录管理页面 http://127.0.0.1/admin/

 

其他

    网页粒子特效背景 Particleground.js 的简单引入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值