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删除特定文件的方法
Jul 30 Python
python 内置模块详解
Jan 01 Python
在Django的View中使用asyncio的方法
Jul 12 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 Python
python字符串常用方法及文件简单读写的操作方法
Mar 04 Python
jupyter notebook插入本地图片的实现
Apr 13 Python
Opencv+Python识别PCB板图片的步骤
Jan 07 Python
python palywright库基本使用
Jan 21 Python
win10+anaconda安装yolov5的方法及问题解决方案
Apr 29 Python
pytorch 如何使用float64训练
May 24 Python
学会Python数据可视化必须尝试这7个库
Jun 16 Python
python3 字符串str和bytes相互转换
Mar 23 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
php中通过curl smtp发送邮件
2012/06/05 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
JS模拟多线程
2007/02/07 Javascript
跟我一起学写jQuery插件开发方法(附完整实例及下载)
2010/04/01 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
jQuery超赞的评分插件(8款)
2015/08/20 Javascript
跨域资源共享 CORS 详解
2016/04/26 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
Vue axios设置访问基础路径方法
2018/09/19 Javascript
Vue项目中使用flow做类型检测的方法
2020/03/18 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
详解重置Django migration的常见方式
2019/02/15 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
Python API len函数操作过程解析
2020/03/05 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
美丽的现代设计家具:2Modern
2018/07/26 全球购物
设计毕业生简历中的自我评价
2013/10/01 职场文书
医院办公室主任职责
2013/12/29 职场文书
学校采购员岗位职责
2014/01/02 职场文书
写给爸爸的道歉信
2014/01/15 职场文书
城建学院毕业生自荐信
2014/01/31 职场文书
汽车队司机先进事迹材料
2014/02/01 职场文书
群众路线调研报告范文
2014/11/03 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android
Vue操作Storage本地化存储
2022/04/29 Vue.js