-
2018-11-03 21:18:40
基于Python的用户管理小系统,包含文件读写操作,实现了用户信息注册和登录的简单功能。
class userLogReg: """ Created on 2018.11 @author: tox33 """ def __init__(self): """ :param userFile: 操作的文件 """ self.userFile = "user.txt" def userLogin(self,username,password): """ 用户登录 :param username:用户名 :param paaword:密码 :return:True,用户登录成功;False,用户登录失败 """ try: f = open(self.userFile,"r",encoding="utf-8") for line in f: line = line.strip() line_list = line.split("#") if line_list[0] == username and line_list[1] == password: return True elif line_list[0] == username and line_list[1] != password: print("密码错误!!") return False except IOError: return False def userRegister(self,username,password): """ 用户注册 1、打开文件 2、用户名#密码 :param username:用户名 :param password:密码 :return:True,注册成功 """ with open(self.userFile,"a",encoding="utf-8")as f: temp = "\n" + username + "#" + password f.write(temp) return True def user_exist(self,username): """ 检测用户名是否存在 :param username:要检测的用户名 :return: True,用户名存在;False,用户名不存在 """ try: with open(self.userFile,"r",encoding="utf-8") as f: for line in f: line = line.strip() line_new = line.split("#") if line_new[0] == username: return True return False except IOError: return False def main(self): """ 主控制函数 :操作选择参数arg: 0-注册 1-登录 """ print("欢迎来到Al用户管理系统") while(True): arg = input("0:注册 ,1:登录\n") if arg == "0": user = input("请设置用户名:") if self.user_exist(user): print("用户名已存在,请重新设置!") continue else: pwd = input("请设置密码:") if self.userRegister(user,pwd): print("注册成功!") continue else: print("注册失败!") continue elif arg == "1": user = input("请输入用户名:") if not self.user_exist(user): print("用户名不存在,请检查!") continue else: pwd = input("请输入登录密码:") if self.userLogin(user,pwd): print("登录成功!") break else: print("登录失败,请检查!") continue else: print("输入错误,请检查!") continue if __name__ == '__main__': test = userLogReg() test.main()
更多相关内容 -
用户管理系统
2018-09-08 23:26:27本项目是基于JavaWeb工程的用户管理系统,编写的目的在于更好的学习JavaWeb,博客最后附上项目的地址,欢迎大家下载。 二、项目功能介绍 1、登陆页面 使用了bootstrap.css来优化页面,使用session来存储用户的...一、项目介绍
本项目是基于JavaWeb工程的用户管理系统,编写的目的在于更好的学习JavaWeb,博客最后附上项目的地址,欢迎大家下载。
二、项目功能介绍
1、登陆页面
使用了bootstrap.css来优化页面,使用session来存储用户的账号和密码
2、注册页面
与登陆页面相似,也使用了bootstrap.css,注册成功替换原先的cookie值
3、用户信息列表页面
从数据库中获取数据,并显示在页面中,并实现了分页加载技术
@WebServlet(urlPatterns = "/pageQueryServlet") public class PageQueryServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String strPageNum = request.getParameter("pageNum"); String strPageSize = request.getParameter("pageSize"); UserService userService = new UserService(); //当前页的页数 int pageNum = Integer.parseInt(strPageNum); //每页显示的个数 int pageSize = Integer.parseInt(strPageSize); //每页的起始条目索引 int startCount = (pageNum - 1) * pageSize; List<User> pageUsers = userService.pageQuery(startCount, pageSize); int totalItemCount = userService.queryTotalItemCount(pageSize); int totalPageCount; //计算总页数 if (totalItemCount % pageSize == 0) { totalPageCount = totalItemCount % pageSize; } else { totalPageCount = totalItemCount / pageSize + 1; } if (pageUsers != null) { //查询成功 request.setAttribute("pageUsers", pageUsers); request.setAttribute("pageNum", pageNum); request.setAttribute("pageSize", pageSize); request.setAttribute("totalPageCount", totalPageCount); request.setAttribute("totalItemCount", totalItemCount); request.getRequestDispatcher("/list.jsp").forward(request, response); } } }
4、修改联系人页面
实现了数据的回显功能,但是没有做数据的校验,可以使用jQuery Validate的进行表单校验来优化项目
数据回显代码:
@WebServlet(urlPatterns = "/queryUserByIdServlet") public class QueryUserByIdServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //处理修改用户信息之前的查询操作 request.setCharacterEncoding("utf-8"); String id = request.getParameter("id"); //根据ID获取用户信息 UserService userService = new UserService(); User userInfo = userService.queryUserById(id); String pageNum = request.getParameter("pageNum"); String pageSize = request.getParameter("pageSize"); if (userInfo != null) { //查询成功 request.setAttribute("user", userInfo); request.setAttribute("pageNum", pageNum); request.setAttribute("pageSize", pageSize); request.getRequestDispatcher("/update.jsp").forward(request, response); } else { request.setAttribute("errorMsg", "查询用户信息失败!"); request.getRequestDispatcher("/error.jsp").forward(request, response); } } }
修改数据代码:
@WebServlet(urlPatterns = "/updateUserByIdServlet") public class UpdateUserByIdServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); //获取数据 String id = request.getParameter("id"); String name = request.getParameter("name"); String sex = request.getParameter("sex"); String age = request.getParameter("age"); String address = request.getParameter("address"); String qq = request.getParameter("qq"); String email = request.getParameter("email"); String pageNum = request.getParameter("pageNum"); String pageSize = request.getParameter("pageSize"); //处理数据 User user = new User(Integer.parseInt(id), name, sex, Integer.parseInt(age), address, qq, email); UserService userService = new UserService(); boolean isUpdate = userService.updateUserById(user); if (isUpdate) { //修改成功,查询所有用户信息 response.sendRedirect("/pageQueryServlet?pageNum=" + pageNum + "&pageSize=" + pageSize); } else { //修改失败 request.setAttribute("errorMsg", "修改用户信息失败"); request.getRequestDispatcher("/error.jsp").forward(request, response); } } }
5、删除用户功能
@WebServlet(urlPatterns = "/deleteUserByIdServlet") public class DeleteUserByIdServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置编码格式 request.setCharacterEncoding("utf-8"); String pageNum = request.getParameter("pageNum"); String pageSize = request.getParameter("pageSize"); //获取数据 String id = request.getParameter("id"); //处理数据 UserService userService = new UserService(); boolean isDelete = userService.deleteUserById(id); if (isDelete) { //删除成功,需要查询所有用户信息 response.sendRedirect("/pageQueryServlet?pageNum=" + pageNum + "&pageSize=" + pageSize); } else { //删除失败,跳到错误页面 request.setAttribute("errorMsg", "删除用户信息失败"); request.getRequestDispatcher("/error.jsp").forward(request, response); } } }
6、添加用户页面
和修改联系人页面一样,没有做表单校验。
提交代码:
@WebServlet(urlPatterns = "/addUserServlet") public class AddUserServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); //获取数据 String name = request.getParameter("name"); String sex = request.getParameter("sex"); String age = request.getParameter("age"); String address = request.getParameter("address"); String qq = request.getParameter("qq"); String email = request.getParameter("email"); String pageNum = request.getParameter("pageNum"); String pageSize = request.getParameter("pageSize"); //处理数据 User user = new User(null, name, sex, Integer.parseInt(age), address, qq, email); UserService userService = new UserService(); boolean isAdd = userService.addUser(user); if (isAdd) { //添加成功,需要查询所有用户信息 response.sendRedirect("/pageQueryServlet?pageNum=" + pageNum + "&pageSize=" + pageSize); } else { //添加失败,跳转失败页面 request.setAttribute("errorMsg", "添加用户信息失败!"); request.getRequestDispatcher("/error.jsp").forward(request, response); } } }
项目地址:https://github.com/demon-gu/user-manager
-
Python实现简单的用户管理系统
2018-01-09 22:52:10用户管理系统 1.注册新用户 如果注册用户已经存在,则报错 需要填写信息: name, passwd, gender, email,age 2.用户登录 要求同之前写的用户登录系统 3.注销用户 用户注销时,需要输入用户名和正确的用户密码 4....用户管理系统
- 1.注册新用户
如果注册用户已经存在,则报错
需要填写信息: name, passwd, gender, email,age - 2.用户登录 要求同之前写的用户登录系统
- 3.注销用户 用户注销时,需要输入用户名和正确的用户密码
- 4.显示用户信息 显示系统中存在所有已经注册用户的信息
- 5.退出系统
代码如下
#!/usr/bin/env python #coding:utf-8 info = """ ************************************************************ 用户登录管理系统 ************************************************************ 1. 注册新用户 2. 用户登录 3. 用户注销 4. 用户信息显示 5. 退出系统 """ userinfo = { 'root': { 'name': 'root', 'password': 'redhat', 'gender': 1, 'email': '', 'age': 12 }, } gender_choice = [0, 1, 2] def CreateUser(): print "注册用户界面".center(50, '*') name = raw_input("*注册用户名:") if name in userinfo: print "用户已存在,请更换注册名" else: password = raw_input("*用户密码:") while True: gender = input("*性别(0-男 1-女 2-其他):") if gender in gender_choice: break else: print "请输入正确的选择" email = raw_input("用户邮箱:") if not email: email = None age = raw_input("年龄:") if not age: age = None else: age = int(age) userinfo[name] = { 'name': name, 'password': password, 'gender': gender, 'email': email, 'age': age, } print "%s 用户注册成功!!!" % (name) def UserLogin(): print "用户登录界面".center(50, '*') trycount = 0 while trycount < 3: name = raw_input("登录用户名:") if name not in userinfo: print "用户未注册" break password = raw_input("登录密码:") trycount += 1 if password == userinfo[name]['password']: print "恭喜%s登录成功" % (name) break else: print "请输入正确的用户名或密码!" else: print "已登录三次,请稍后再试" def DeleteUser(): print "用户注销界面".center(50, '*') name = raw_input("注销用户名:") if name not in userinfo: print "用户未注册" else: password = raw_input("登录密码:") if password == userinfo[name]['password']: userinfo.pop(name) print "恭喜注销%s成功" % (name) def UserInfo(): for key, value in userinfo.items(): print "用户:%s" % (key), print "性别:%d" % (value['gender']), print "邮箱:%s" % (value['email']), print "年龄:%s" % (value['age']), print "\n\n" def main(): while True: print info choice = raw_input("Choice:").strip() if choice == "1": CreateUser() elif choice == "2": UserLogin() elif choice == "3": DeleteUser() elif choice == "4": UserInfo() elif choice == "5": exit() else: print "输入正确的选择" main()
- 1.注册新用户
-
手把手教你用python实现一个简单用户管理系统
2019-03-30 11:59:57Overview:0.环境1.前言2.效果图3.代码涉及知识点4.代码实现思路5.小技巧6.总结0.环境操作系统:WindowsPython版本:3.6.01.前言同学们...Overview:
0.环境
1.前言
2.效果图
3.代码涉及知识点
4.代码实现思路
5.小技巧
6.总结
0.环境
操作系统:Windows
Python版本:3.6.0
1.前言
同学们知道用户管理系统么?用户管理系统可以存储用户的各种信息,比如用户名字,年龄,手机号等等。
这里自己实现了个命令行版本的用户管理系统,可以添加,删除,修改数据,还能自己设置密码以及指定排序的字段。
2.效果图
2.1 程序启动及设置密码,录入用户
2.2 查找用户,排序,以及删除
2.3 保存用户文件及密码文件示例
3.代码涉及知识点
3.1 json介绍
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。
JSON 值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或 false)、数组(在方括号中)、对象(在花括号中)、null。
3.2 python中的json操作
3.2.1 写入文件
3.2.2 读取文件
同学们看懂了吧?其实写入json文件就是把python中的的字典类型转换成文本,而读取json文件就是把文本转换成python中的字典
4.代码实现思路
掌握了json文件的读写,接下来的思路就很简单了,笔者这里帮同学们整理了一下:
1. 程序开始,利用json的读取文件功能,读取用户数据、密码文件。
2. 通过命令行录入用户密码等信息,数据暂存内存。
3. 通过函数模块分别实现查找,删除,排序,用户信息等,数据暂存内存。
4. 退出程序时,利用json的写入文件功能讲内存里的数据写入文件持久化。
5.小技巧
一开始写的时候,主函数的代码有点像下面这样:
每个命令对应一个功能的函数,然后写了很长的if判断,很丑很挫有没有?而且万一这个程序有100个功能,难不成要写100个if?
其实不用的,我们可以这么做:
是不是感觉很棒,代码简化了很多呢?
6.总结
这里实现了一个简单用户管理系统,笔者已经将主要思路写出来了,接下来就看同学们怎么自己去实现了。
如果你也实现了,别忘了留言告诉我。有问题也可以留言给我,我们一起讨论。
关注公众号 Python专栏,后台回复:zsxq07,获取本文全套代码。
推荐阅读:
-
SaaS用户管理系统模型设计
2018-06-22 14:44:18最近一直在研究关于SaaS化的用户管理系统,现将项目中的模型做一整理,先贴图:租户/组织、部门、员工 完成的是对整个组织结构及结构中人员分布的管理;系统用户(包括登陆账号)、权限包、角色、功能权限、功能、... -
JSP+Servlet+MySQL实现简单的用户管理系统
2019-08-20 11:24:00页面效果 整体效果展示: 1.登录页面 2.首页 3.用户信息列表显示 ...10.退出系统 项目源码见github https://github.com/gujunling/JSPTest 转载于:https://www.cnblogs.com/gujun1998/p/11... -
SSH框架实现简单的用户管理系统(增删改查)
2015-04-15 10:13:17SSH简单的入门案例,对用户的信息进行管理,实现增删改查功能。 -
java:JDBC连接数据库实现用户管理系统
2018-08-12 08:26:303.管理员对普通用户的查询,添加,修改,删除操作 4.对3实现ID和用户名的两种操作方式 5.对以上功能实现菜单化管理 6.所有用户信息都存储于Oracle数据库 流程图: 部分效果图: 源码githab地址: ... -
用户中心-后台管理系统原型设计
2015-01-14 14:51:23附件为用户中心-后台管理系统原型设计,Axure RP原型设计文件文档 -
简单HTML+CSS3设计——用户信息管理系统
2019-04-10 21:59:55利用HTML+CSS3技术设计一个简单的用户信息管理系统,主要包含框架主页、我的工作台、用户注册、用户信息列表共计四个页面。 一、框架结构 二、我的工作台 三、用户注册 四、用户信息列表 源代码:... -
Saas平台级架构:统一身份认证管理系统用户权限管理
2019-06-14 15:01:18对于Saas业内在用户统一身份认证及授权管理领域,主要关注 4 个方面(4A管理)): 集中账号管理(Account)、集中认证管理(Authentication)、集中授权管理(Authorization)和集中审计管理(Audit), 简称 4A ... -
基于ThinkPHP做的一个简单的用户登录及管理小系统
2012-08-18 00:28:46这是基于ThinkPHP做的一个简单的用户登录及管理的小系统,实现基本的增删改~~ -
JavaWeb用户信息管理系统-创建登录页面
2020-07-06 09:42:59charset=UTF-8" language="java" %> 欢迎登录后台管理系统 回首页 帮助 关于 X3D5S 之后模板添加name,默认的模板是空白的 因为要提交数据所以要放到form表单,验证码先不着急做 4 访问是否成功 -
【Servlet+jsp项目实战】用户管理系统实战:注册、登录、修改密码、查看所有用户信息
2019-08-22 20:58:49信息管理系统开发文档 技术需求 Servlet+jsp+mvc+jdbc 软件需求 开发工具:Eclipse 数据库: mySql 服务器:tomcat 浏览器:Firefox 功能需求 完成用户登录。 完成用户注册。 完成用户退出。 完成查看个人信息。 完成... -
学生成绩管理管理系统
2020-06-23 15:18:26学生成绩管理管理系统 一,需求分析 1、编写目的 为了明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。本文档供项目经理、设计人员、开发人员参考。 2、项目背景 使用计算机对学生信息进行管理... -
统一用户权限管理系统(正式版)
2015-01-08 21:11:56系统名称:统一用户权限管理系统 演示地址:http://tdog7.oschina.mopaas.com/ 简介:本系统为统一的细粒度授权管理和用户统一身份管理及单点认证支撑平台。每个接入的系统都支持自定义权限、配置细粒度... -
php会员管理系统源码
2011-04-25 14:26:34完整的php+mysql+apache程序,实现了基本的功能。 -
基于springboot的学生信息管理系统
2019-07-10 10:00:56本系统使用 MySQL作为数据库,MySQL数据库是一款开源的免费的关系型数据库,功能非常强大,拥有图形用户界面,一般应用于大型的公司作为数据存储。由于开源并且是免费的,因此广受大家的青睐[1]。 (2) SpringBoot ... -
-
-
javaWeb图书馆管理系统源码mysql版本
2014-03-31 11:01:25(1)用户登录图书馆管理系统后,可看到图书借阅排行榜,通过排行榜可以看出借阅图书的名称、图书类型、借阅次数等相关信息。 (2)单击“系统设置”/“图书馆信息”命令,对图书馆信息进行设置操作。 (3)单击... -
开源了自己开发的后台管理系统
2018-05-21 19:13:32我顿时觉得我应该开源我自己的Java后台管理系统项目。我很想问那个项目经理:你发现过国内有开源的、安全的、完全满足需求的用户中心系统吗?你觉得国外的一个authinterceptor用设计模式没有三四个文件互相调用很... -
统一用户权限管理系统
2015-01-30 14:53:27本系统为统一的细粒度授权管理和用户统一身份管理及单点认证支撑平台。每个接入的系统都支持自定义权限、配置细粒度用户权限和资源灵活配置。 -
学生成绩管理系统管理系统源代码java+sql server
2015-05-14 13:12:22适合大学生毕业设计源代码,本系统主要分为5大功能模块,分别为: 登录模块:实现用户登录。 参数设置:包括学生年级设置、班级设置、考试科目设置以及考试类别... 系统管理:包括用户维护、系统退出等功能。 -
Java图形界面开发—学生信息管理系统 完整源码
2017-02-28 21:36:13学生信息管理系统,使用Java开发。 1、登录界面可以进行登录操作。有俩种权限选择。分别跳转到不同的界面。 2、使用了事件监听、Java操作SQLserver数据库等知识。 3、图形化界面中使用了JTable等组件,将查询结果... -
基于角色的权限管理系统设计思路
2017-05-18 18:05:11概述权限管理功能是项目中重要的部分,通过权限系统可以控制系统中各用户所拥有的权限,比如能否打开一个页面,能否进行某项操作,合理的权限控制可以规避误操作的风险,提高系统的可用性。 权限管理的思路一般为... -
Linux系统管理用户账号详解
2021-05-08 21:01:44在 Linux系统中,根据系统管理的需要将用户账号分为不同的类型,同时也有不同的权限与不同的功能,主要分为超级用户、普通用户和程序用户。1)超级用户:root用户是 Linux系统中默认的超级用户账... -
会议室预定管理系统
2013-01-31 16:00:54用户管理 : 维护本系统用户信息。本系统用户分为 管理员和普通用户 密码修改 : 用户通过此功能修改自己的密码 密码重置 : 管理员可重置其他用户的密码。重置后密码默认为:111111,本系统初始用户为admin V2.1... -
图书管理系统毕业设计+源码-java
2012-05-06 13:45:09图书管理系统毕业设计+源码-java 包括80个文件,各个界面图等。 图书馆集成管理系统 前言 随着计算机技术的发展以及计算机网络的逐渐普及,英特网成为人们查找信息的重要场所。二十一世纪是信息的时代,所以信息... -
基于java springboot的图书管理系统设计和实现
2021-08-13 13:47:50前言 ...图书管理系统是典型的信息管理系统。系统介绍了图书系统的开发过程,设计中遇到的问题及解决方法以及提高当前应用程序或系统开发进度和改善工作性能。利用其提供的各种面向对象的开发工具...