day37 crm开发之用户登录功能开发

web应用增加用户登录视图功能

# -*- encoding: utf-8 -*-
"""
@File    : account.py
@Time    : 2022/3/7 20:56
@Author  : simon
@Email   : 294168604@qq.com
@Software: PyCharm
"""
from django.shortcuts import render, HttpResponse, redirect
from web import models
from web.utils.md5 import gen_md5


def login(request):
    """
    用户登录
    :param request:
    :return:
    """
    if request.method == 'GET':
        return render(request, 'login.html')

    user = request.POST.get('user')
    pwd = gen_md5(request.POST.get('pwd',''))

    # 根据用户名和密码去用户表中获取用户对象
    user = models.UserInfo.objects.filter(name=user, password=pwd).first()
    if not user:
        return render(request, 'login.html', {'msg': '用户名或密码错误'})
    request.session['user_info'] = {'id': user.id, 'nickname': user.nickname}

    return redirect('/index/')

def logout(request):
    """
    注销
    :param request:
    :return:
    """
    request.session.delete()

    return redirect('/login/')


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

添加路由

from django.contrib import admin
from django.urls import path
from stark.service.v1 import site
from web.views import account
urlpatterns = [
    path('admin/', admin.site.urls),
    path('stark/', site.urls),
    path('login/', account.login, name='login'),
    path('logout/', account.logout, name='logout'),
    path('index/', account.index, name='index'),
]

添加登录和首页模板

login.html

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>大塘培训</title>
    <link rel="stylesheet" href="{% static 'stark/plugins/bootstrap/css/bootstrap.css' %} "/>
</head>
<body>
<div style="width: 500px;margin: 50px auto 0 auto;">
    <form class="form-horizontal" method="post">
        {% csrf_token %}
        <div class="form-group">
            <label for="user" class="col-sm-2 control-label">用户名</label>
            <div class="col-sm-10">
                <input type="text" class="form-control" id="user" placeholder="用户名" name="user">
            </div>
        </div>
        <div class="form-group">
            <label for="pwd" class="col-sm-2 control-label">密码</label>
            <div class="col-sm-10">
                <input type="password" class="form-control" id="pwd" placeholder="密码" name="pwd">
            </div>
        </div>
        <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
                <div class="checkbox">
                    <label>
                        <input type="checkbox"> 记住密码
                    </label>
                </div>
            </div>
        </div>
        <div class="form-group">
            <div class="col-sm-offset-2 col-sm-10">
                <button type="submit" class="btn btn-primary">登 录</button>
                {{ msg }}
            </div>
        </div>
    </form>
</div>
</body>
</html>

index.html

{% extends 'layout.html' %}

{% block content %}
    <div class="luffy-container">
        <h2>欢迎使用</h2>
    </div>
{% endblock %}

效果如图:

posted @   simon_T  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示