毕设选题推荐基于python的django框架的自媒体社推广平台系统
创始人
2024-03-25 23:09:04

💖🔥作者主页:计算机毕设老哥🔥 💖
精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻

Java实战项目专栏

Python实战项目专栏

安卓实战项目专栏

微信小程序实战项目专栏

文章目录

    • Java实战项目专栏
    • Python实战项目专栏
    • 安卓实战项目专栏
    • 微信小程序实战项目专栏
  • 一、开发介绍
    • 1.1 开发环境
  • 二、系统介绍
    • 2.1图片展示
  • 三、部分代码设计
    • 3.1.Mybatis-Plus工具类-部分代码如下:
    • 3.2.校验工具类-部分代码如下:
    • 3.3.查询参数工具类-部分代码如下:
  • 总结
  • 有问题评论区交流
    • Java实战项目专栏
    • Python实战项目专栏
    • 安卓实战项目专栏
    • 微信小程序实战项目专栏

一、开发介绍

1.1 开发环境

  • 开发语言:Python

  • 数据库:MySQL

  • 系统架构:B/S

  • 后端:Django

  • 前端:Vue+HTML+CSS+JavaScript+jQuery

  • 工具:PyCharm

二、系统介绍

2.1图片展示

注册登录页面:在这里插入图片描述

前台页面功能:首页、需求通告、优质案列、帮助中心、意见反馈、个人中心、后台管理、在线咨询在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

管理员后台模块:
功能:首页、个人中心、用户管理、商家管理、普通管理员管理、需求通告管理、接单信息管理、优质案例管理、申请信息管理、社区公告管理、领域类型管理、意见反馈、系统管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用户后台模块:
功能:首页、个人中心、接单信息管理、申请信息管理
在这里插入图片描述
在这里插入图片描述

商家后台模块功能:首页、个人中心、需求通告管理、接单信息管理在这里插入图片描述
在这里插入图片描述

普通管理员后台模块功能:首页、个人中心、需求通告管理、优质案例管理、申请信息管理、社区公告管理在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、部分代码设计

3.1.Mybatis-Plus工具类-部分代码如下:

/*** Mybatis-Plus工具类*/
public class MPUtil {public static final char UNDERLINE = '_';//mybatis plus allEQ 表达式转换public static Map allEQMapPre(Object bean,String pre) {Map map =BeanUtil.beanToMap(bean);return camelToUnderlineMap(map,pre);}//mybatis plus allEQ 表达式转换public static Map allEQMap(Object bean) {Map map =BeanUtil.beanToMap(bean);return camelToUnderlineMap(map,"");}public static Wrapper allLikePre(Wrapper wrapper,Object bean,String pre) {Map map =BeanUtil.beanToMap(bean);Map result = camelToUnderlineMap(map,pre);return genLike(wrapper,result);}public static Wrapper allLike(Wrapper wrapper,Object bean) {Map result = BeanUtil.beanToMap(bean, true, true);			 return genLike(wrapper,result);}public static Wrapper genLike( Wrapper wrapper,Map param) {Iterator> it = param.entrySet().iterator();int i=0;while (it.hasNext()) {if(i>0) wrapper.and();Map.Entry entry = it.next();String key = entry.getKey();String value = (String) entry.getValue();wrapper.like(key, value);i++;}return wrapper;}public static Wrapper likeOrEq(Wrapper wrapper,Object bean) {Map result = BeanUtil.beanToMap(bean, true, true);			 return genLikeOrEq(wrapper,result);}public static Wrapper genLikeOrEq( Wrapper wrapper,Map param) {Iterator> it = param.entrySet().iterator();int i=0;while (it.hasNext()) {if(i>0) wrapper.and();Map.Entry entry = it.next();String key = entry.getKey();if(entry.getValue().toString().contains("%")) {wrapper.like(key, entry.getValue().toString().replace("%", ""));} else {wrapper.eq(key, entry.getValue());}i++;}return wrapper;}public static Wrapper allEq(Wrapper wrapper,Object bean) {Map result = BeanUtil.beanToMap(bean, true, true);			 return genEq(wrapper,result);}public static Wrapper genEq( Wrapper wrapper,Map param) {Iterator> it = param.entrySet().iterator();int i=0;while (it.hasNext()) {if(i>0) wrapper.and();Map.Entry entry = it.next();String key = entry.getKey();wrapper.eq(key, entry.getValue());i++;}return wrapper;}public static Wrapper between(Wrapper wrapper,Map params) {for(String key : params.keySet()) {String columnName = "";if(key.endsWith("_start")) {columnName = key.substring(0, key.indexOf("_start"));if(StringUtils.isNotBlank(params.get(key).toString())) {wrapper.ge(columnName, params.get(key));}}if(key.endsWith("_end")) {columnName = key.substring(0, key.indexOf("_end"));if(StringUtils.isNotBlank(params.get(key).toString())) {wrapper.le(columnName, params.get(key));}}}return wrapper;}public static Wrapper sort(Wrapper wrapper,Map params) {String order = "";if(params.get("order") != null && StringUtils.isNotBlank(params.get("order").toString())) {order = params.get("order").toString();}if(params.get("sort") != null && StringUtils.isNotBlank(params.get("sort").toString())) {if(order.equalsIgnoreCase("desc")) {wrapper.orderDesc(Arrays.asList(params.get("sort")));} else {wrapper.orderAsc(Arrays.asList(params.get("sort")));}}return wrapper;}/*** 驼峰格式字符串转换为下划线格式字符串* * @param param* @return*/public static String camelToUnderline(String param) {if (param == null || "".equals(param.trim())) {return "";}int len = param.length();StringBuilder sb = new StringBuilder(len);for (int i = 0; i < len; i++) {char c = param.charAt(i);if (Character.isUpperCase(c)) {sb.append(UNDERLINE);sb.append(Character.toLowerCase(c));} else {sb.append(c);}}return sb.toString();}public static void main(String[] ages) {System.out.println(camelToUnderline("ABCddfANM"));}public static Map camelToUnderlineMap(Map param, String pre) {Map newMap = new HashMap();Iterator> it = param.entrySet().iterator();while (it.hasNext()) {Map.Entry entry = it.next();String key = entry.getKey();String newKey = camelToUnderline(key);if (pre.endsWith(".")) {newMap.put(pre + newKey, entry.getValue());} else if (StringUtils.isEmpty(pre)) {newMap.put(newKey, entry.getValue());} else {newMap.put(pre + "." + newKey, entry.getValue());}}return newMap;}
}

3.2.校验工具类-部分代码如下:

/*** hibernate-validator校验工具类*/
public class ValidatorUtils {private static Validator validator;static {validator = Validation.buildDefaultValidatorFactory().getValidator();}/*** 校验对象* @param object        待校验对象* @param groups        待校验的组* @throws EIException  校验不通过,则报EIException异常*/public static void validateEntity(Object object, Class... groups)throws EIException {Set> constraintViolations = validator.validate(object, groups);if (!constraintViolations.isEmpty()) {ConstraintViolation constraint = (ConstraintViolation)constraintViolations.iterator().next();throw new EIException(constraint.getMessage());}}}
 

3.3.查询参数工具类-部分代码如下:

/*** 查询参数*/
public class Query extends LinkedHashMap {private static final long serialVersionUID = 1L;/*** mybatis-plus分页参数*/private Page page;/*** 当前页码*/private int currPage = 1;/*** 每页条数*/private int limit = 10;public Query(JQPageInfo pageInfo) {//分页参数if(pageInfo.getPage()!= null){currPage = pageInfo.getPage();}if(pageInfo.getLimit()!= null){limit = pageInfo.getLimit();}//防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险)String sidx = SQLFilter.sqlInject(pageInfo.getSidx());String order = SQLFilter.sqlInject(pageInfo.getOrder());//mybatis-plus分页this.page = new Page<>(currPage, limit);//排序if(StringUtils.isNotBlank(sidx) && StringUtils.isNotBlank(order)){this.page.setOrderByField(sidx);this.page.setAsc("ASC".equalsIgnoreCase(order));}}public Query(Map params){this.putAll(params);//分页参数if(params.get("page") != null){currPage = Integer.parseInt((String)params.get("page"));}if(params.get("limit") != null){limit = Integer.parseInt((String)params.get("limit"));}this.put("offset", (currPage - 1) * limit);this.put("page", currPage);this.put("limit", limit);//防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险)String sidx = SQLFilter.sqlInject((String)params.get("sidx"));String order = SQLFilter.sqlInject((String)params.get("order"));this.put("sidx", sidx);this.put("order", order);//mybatis-plus分页this.page = new Page<>(currPage, limit);//排序if(StringUtils.isNotBlank(sidx) && StringUtils.isNotBlank(order)){this.page.setOrderByField(sidx);this.page.setAsc("ASC".equalsIgnoreCase(order));}}public Page getPage() {return page;}public int getCurrPage() {return currPage;}public int getLimit() {return limit;}
}

总结

大家可以帮忙点赞、收藏、关注、评论啦

有问题评论区交流

精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻

Java实战项目专栏

Python实战项目专栏

安卓实战项目专栏

微信小程序实战项目专栏

相关内容

热门资讯

应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...