Django 创建/删除用户的示例代码


Posted in Python onJuly 24, 2019

示意图:

Django 创建/删除用户的示例代码

html:

{# 用户管理 #}
  <div id="userManageDiv" style="display: none;">
    <div id="" style="margin-left: 10px;">  {# 创建用户 #}
      <h4 style="margin-top: 15px;">创建用户</h4>
      <hr style="margin-top: 5px;" />
      <div class="input-group" style="margin-bottom: 5px; margin-left: 30px; width: 253px;">
        <span class="input-group-addon" id="basic-addon1" style="width: 80px;">用户名</span>
        <input type="text" class="form-control" id="username" name="username" placeholder="请输入用户名" aria-describedby="basic-addon1" />
      </div>
      <div class="input-group" style="margin-bottom: 5px; margin-left: 30px; width: 253px;">
        <span class="input-group-addon" id="basic-addon2" style="width: 80px;">密码</span>
        <input type="password" class="form-control" id="password" name="password" placeholder="请输入密码" aria-describedby="basic-addon2" />
      </div>
      <div class="input-group" style="margin-bottom: 5px; margin-left: 30px;">
        <span class="input-group-addon" id="basic-addon3">确认密码</span>
        <input type="password" class="form-control" id="passwordAgain" name="passwordAgain" placeholder="请再次输入密码" aria-describedby="basic-addon3" />
      </div>
      <div class="input-group" style="margin-bottom: 5px; margin-left: 30px; width: 253px;">
        <span class="input-group-addon" style="width: 80px;">是否激活</span>
        <select name="userStatus" id="userStatus" class="form-control selectpicker">
          <option value="1">激活</option>
          <option value="0">封停</option>
        </select>
      </div>
      <div id="createUserAlert" class="alert alert-danger" role="alert" style="width: 30%; margin-bottom: 6px; display: none;"></div>
      <button type="button" id="createUserBtn" class="btn btn-default" data-toggle="modal" data-target="#alertTip" data-whatever="激活/封停 该账户?" style="width: 100px; margin-left: 100px;">提  交</button>
      <hr style="margin-top: 5px;" />
    </div>

    <div id="" style="margin-left: 10px; margin-top: 50px;">   {# 删除用户 #}
      <h4 style="margin-top: 15px;">删除用户</h4>
      <hr style="margin-top: 5px;" />
      <div class="input-group" style="margin-bottom: 5px; margin-left: 30px; width: 253px;">
        <span class="input-group-addon" style="width: 80px;">用户名</span>
        <select name="deleteUsername" id="deleteUsername" class="form-control selectpicker" data-live-search="true">
        {% for user in users %}
          <option value="{{ user.username }}">{{ user.username }}</option>
        {% endfor %}
        </select>
      </div>
      <button type="button" id="deleteUserBtn" class="btn btn-default" data-toggle="modal" data-target="#alertTip" data-whatever="删除 该账户?" style="width: 100px; margin-left: 100px;">提  交</button>
    </div>
  </div>

html?模态框:

{# 模态框 #}
  <div class="modal fade" tabindex="-1" role="dialog" id="alertTip">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">×</span>
          </button>
          <h4 class="modal-title">确认提示框!!</h4>
        </div>
        <div class="modal-body">
          <p id="modal_content"></p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-primary" id="modalConfirmBtn">确认</button>
          <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
        </div>
      </div>
    </div>
  </div>

前端js代码:

// 模态框 body显示
$(document).ready(function () {
  $('#alertTip').on('show.bs.modal', function (e) {
    var button = $(e.relatedTarget);
    var content = button.data('whatever');

    var modal = $(this);
    modal.find('#modal_content').text('确认 ' + content);
  })
});

// 模态框 显示前,记录 哪个div 启动了 模态框
var preAjaxDiv;
$(document).ready(function () {
  $('#createUserBtn').click(function () {
    preAjaxDiv = $(this).attr('id');
  });
  $('#deleteUserBtn').click(function () {
    preAjaxDiv = $(this).attr('id');
  });
  $('#changePasswordBtn').click(function () {
    preAjaxDiv = $(this).attr('id');
  });
  $('#changePermissionBtn').click(function () {
    preAjaxDiv = $(this).attr('id');
  });
});


// 模态框 点击确认后执行
$(document).ready(function () {
    $('#modalConfirmBtn').click(function () {
      if (preAjaxDiv == 'createUserBtn') {
        createUser();
        $('#alertTip').modal('hide');

      } else if (preAjaxDiv == 'deleteUserBtn') {
        deleteUser();
        $('#alertTip').modal('hide');

      } else if (preAjaxDiv == 'changePasswordBtn') {
        changePassword();
        $('#alertTip').modal('hide');

      } else if (preAjaxDiv == 'changePermissionBtn') {
        changePermission();
        $('#alertTip').modal('hide');
      }
    })
});

// 创建用户 激活/封停
function createUser() {
  var createUserAlert = '';
  $('#createUserAlert').hide();
  if ( !$('#username').val() ) {
    createUserAlert += "** 用户名不能为空!<br />";

  }
  if ( !$('#password').val() ) {
    createUserAlert += "** 密码不能为空!<br />";

  }
  if ( !$('#passwordAgain').val() ) {
    createUserAlert += "** 确认密码不能为空!<br />";

  }
  if ( $('#password').val() != $('#passwordAgain').val() ) {
    createUserAlert += "** 两次密码输入不一致!<br />";
  }
  if (createUserAlert) {
    $('#createUserAlert').html(createUserAlert);
    $('#createUserAlert').show();

  } else {
    $.ajax({
      url: '/createUser',
      type: 'POST',
      data: {
        createUsername: $('#username').val(),
        password: $('#password').val(),
        is_active: $('#userStatus').val()
      },
      success: function (data, textStatus) {
        if (data == 1) {
          alert('创建成功!');
          window.location.href = 'slg_manager_tem';

        } else if (data == -1) {
          alert('已经创建该账户,无法重复创建!');
        }
      },
      error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert(errorThrown);
      }
    })
  }
}


// 删除用户
function deleteUser() {
  $.ajax({
    url: '/deleteUser',
    type: 'POST',
    data: {
      deleteUsername: $('#deleteUsername').val()
    },
    success: function (data, textStatus) {
      if (data == 1) {
        alert('删除成功!');
        window.location.href = 'slg_manager_tem';
      }
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
      alert(errorThrown);
    }
  })
}

后端python?view视图:

# 创建用户 激活/封停
@login_required(login_url='slg:login')
@require_http_methods(["POST"])
@permission_required('slg.views_slg_manager_tem', login_url='slg:get_permissionDenied')
def create_user(request):
  username = request.POST['createUsername']
  password = request.POST['password']
  is_active = request.POST['is_active']

  createResult = db_create_user(username, password, is_active)
  if createResult == 1:
    return HttpResponse('1')
  elif createResult == -1:
    return HttpResponse('-1')

# 删除用户
@login_required(login_url='slg:login')
@require_http_methods(["POST"])
@permission_required('slg.views_slg_manager_tem', login_url='slg:get_permissionDenied')
def delete_user(request):
  username = request.POST['deleteUsername']
  deleteResult = db_delete_user(username)
  if deleteResult:
    return HttpResponse('1')

后端python?models视图:

from django.contrib.auth.models import User
from django.contrib.auth import authenticate
from django.db.utils import IntegrityError
from . import db_models as db

# 创建用户 激活/封停
def db_create_user(username, password, is_active):
  if is_active == '0':
    is_active = False
  elif is_active == '1':
    is_active = True

  try:
    User.objects.create_user(username=username, password=password, is_active=is_active)
  except IntegrityError:
    return -1  # 已经创建,无法重复创建
  else:
    return 1  # 创建成功

# 删除用户
def db_delete_user(username):
  deleteResult = User.objects.filter(username=username).delete()
  if deleteResult:
    return 1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
轻松掌握python设计模式之策略模式
Nov 18 Python
python之PyMongo使用总结
May 26 Python
python实现发送邮件功能
Jul 22 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
Jul 01 Python
Django认证系统实现的web页面实现代码
Aug 12 Python
python tkinter图形界面代码统计工具
Sep 18 Python
Django框架中间件定义与使用方法案例分析
Nov 28 Python
Python利用Scrapy框架爬取豆瓣电影示例
Jan 17 Python
基于pycharm实现批量修改变量名
Jun 02 Python
基于pytorch中的Sequential用法说明
Jun 24 Python
Django DRF认证组件流程实现原理详解
Aug 17 Python
python3.6+django2.0+mysql搭建网站过程详解
Jul 24 #Python
简单了解python 邮件模块的使用方法
Jul 24 #Python
python 根据字典的键值进行排序的方法
Jul 24 #Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 #Python
Python定时任务工具之APScheduler使用方式
Jul 24 #Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 #Python
Django的用户模块与权限系统的示例代码
Jul 24 #Python
You might like
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
js玩一玩WSH吧
2007/02/23 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
2017/07/19 jQuery
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
python matplotlib坐标轴设置的方法
2017/12/05 Python
python入门教程 python入门神图一张
2018/03/05 Python
Python字典的核心底层原理讲解
2019/01/24 Python
python实现随机漫步方法和原理
2019/06/10 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
Django中Aggregation聚合的基本使用方法
2020/07/09 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
纯CSS3实现滚动的齿轮动画效果
2014/06/05 HTML / CSS
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python