当前位置: 首页 > news >正文

java Python+Django的个人博客系统

前湖校园博客系统旨在加强学校教师和学生之间的了解和交流、教师与教师之间的教学经验的分享,学生与学生之间的学习心得的分享,以及更好的展示该学校老师和学生的风采,并且希望通过博客系统的日志积累,形成丰富的教学资源库,真正促进学校的教学工作。
请添加图片描述
本文首先介绍了个人博客的发展背景与发展现状,然后遵循软件常规开发流程,首先针对系统选取适用的语言和开发平台,根据需求分析制定模块并设计数据库结构,再根据系统总体功能模块的设计绘制系统的功能模块图,流程图以及E-R图。然后,设计框架并根据设计的框架编写代码以实现系统的各个功能模块。最后,对初步完成的系统进行测试,主要是功能测试、单元测试和性能测试。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。

请添加图片描述
在各学校的教学过程中,个人博客是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的个人博客的平台,这样可以有效地解决个人博客混乱的局面。
请添加图片描述
在系统所实现的功能模块中,有效实现了表现与代码分离。每个模块所实现的功能都在相应的层中完成,这样对于代码的维护和升级带来了极大使得。对数据操作采用存储过程来实现。存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
请添加图片描述目录
摘 要 I
Abstract II
第一章 绪论 1
1.1选题的依据及意义 1
1.2国内外研究现状及发展趋势 1
1.3本课题研究内容 2
1.3.1项目概述 2
1.3.2项目功能简介 2
1.3.3性能实现 3
第二章 需求分析 4
2.1项目概述 4
2.1.1项目目标 4
2.1.2业务用例 4
2.2系统功能性需求 7
2.2.1系统功能 7
2.2.2详细功能需求 9
2.3性能需求 11
2.3.1界面要求 11
2.3.2软件质量要求 11
2.4运行环境规定 12
2.4.1服务器设备 12
2.4.2支持软件 12
第三章 系统概要设计 13
3.1总体设计 13
3.1.1设计约束 13
3.1.2体系结构 13
3.1.3系统结构图 14
3.1.4总业务流程图 16
3.2数据库设计 17
3.2.1概念结构设计 17
3.2.2物理结构设计 18
3.3系统出错处理设计 25
3.3.1出错信息 25
3.3.2系统维护设计 25
第四章 系统详细设计 26
4.1程序系统的结构 26
4.2浏览者中心 27
4.3注册用户中心 28
4.4管理员中心 30
第五章 系统实现与测试 33
5.1系统开发环境 33
5.2系统主要功能实现 33
5.2.1构建公共类 33
5.2.2设计用户自定义控件 36
5.2.3系统功能实现 39
5.3系统安全 43
5.4系统测试 43
5.4.1测试目的(和环境) 43
5.4.2测试方法 43
5.4.3测试结果 44
第六章结论 46
参考文献 47

请添加图片描述
请添加图片描述


/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;

	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }

    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }

    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
        userService.updateById(user);//全部更新
        return R.ok();
    }

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

相关文章:

  • 计算机毕业设计ssm图书馆自习室占座选座zg09h系统+程序+源码+lw+远程部署
  • 第10章Linux实操篇-定时任务调度
  • 06-linux下的软件包管理 RPM YUM
  • java Python+Django的工厂设备管理系统 Pycharm
  • java 基于springboot+vue的居民社区健康管理平台
  • 计算机组成原理学习笔记:计算机的发展历程
  • java毕业设计小区停车场管理系统mybatis+源码+调试部署+系统+数据库+lw
  • java基于springboot+vue的旅游博客旅游经验分享系统
  • React Spring实战之API以及animated 组件的运用
  • [JavaEE系列] Thread类的基本用法
  • Allegro Design Entry HDL(OrCAD Capture HDL)窗口管理菜单详细介绍
  • 报错:Error: module property was removed from Dependency
  • java基于springboot+vue的在线求助系统
  • java计算机毕业设计青岛地区常见昆虫图鉴与论坛源码+数据库+系统+lw文档+mybatis+运行部署
  • 17.EC实战 开发板开发环境搭建、程序烧录及运行代码过程
  • [译]CSS 居中(Center)方法大合集
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • AngularJS指令开发(1)——参数详解
  • C学习-枚举(九)
  • JavaScript设计模式与开发实践系列之策略模式
  • NSTimer学习笔记
  • ucore操作系统实验笔记 - 重新理解中断
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 编写符合Python风格的对象
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 微信小程序--------语音识别(前端自己也能玩)
  • 学习ES6 变量的解构赋值
  • 用element的upload组件实现多图片上传和压缩
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • AI算硅基生命吗,为什么?
  • MyCAT水平分库
  • ​iOS安全加固方法及实现
  • #Lua:Lua调用C++生成的DLL库
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • $.ajax()
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (算法)N皇后问题
  • (一)Linux+Windows下安装ffmpeg
  • (转)winform之ListView
  • (转)编辑寄语:因为爱心,所以美丽
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .net 反编译_.net反编译的相关问题
  • .net 使用ajax控件后如何调用前端脚本
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net实现客户区延伸至至非客户区
  • ?php echo ?,?php echo Hello world!;?
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • []常用AT命令解释()
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [AIGC] 如何建立和优化你的工作流?
  • [AutoSar NVM] 存储架构