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

计算机毕业设计 基于Python国潮男装微博评论数据分析系统的设计与实现 Django+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥
🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。
🍊心愿:点赞 👍 收藏 ⭐评论 📝
🍅 文末获取源码联系

👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~
Java毕业设计项目~热门选题推荐《1000套》

Python毕业设计精品项目《1000套》

微信小程序毕业设计精品项目《1000套》

大数据/机器学习毕业设计精品项目《1000套》

目录

1.技术选型

2.开发工具

3.功能

3.1【角色】

3.2【前台功能模块】

3.3【后台功能模块】

4.项目演示截图

4.1 首页

4.2 登录

4.3 服装资讯

4.4 报表统计【大屏】

4.5 男装信息管理

4.6 用户管理

4.7 系统管理

5.核心代码

5.1 Settings.py

5.2 Urls.py

5.3 Users_v.py

5.4 Auth.py

6.LW文档大纲参考


背景意义介绍:

基于Python的国潮男装微博评论数据分析系统,是一个利用现代信息技术,尤其是数据挖掘和自然语言处理技术,来收集、分析和可视化微博上关于国潮男装的用户评论的系统。该系统通过Python爬虫技术获取数据,并通过数据分析技术对数据进行处理和分析,最终通过可视化图表展示分析结果。

系统的背景意义在于,随着国潮文化的兴起,国潮男装品牌在微博上的讨论越来越热烈,而这些用户生成的内容包含了丰富的市场反馈和消费者情感。通过分析这些数据,可以为国潮男装品牌提供市场动态和消费者偏好的实时洞察,帮助品牌更好地理解消费者需求,优化产品设计和营销策略。此外,系统还可以帮助内容创作者优化内容创作策略,提升用户参与度和内容影响力。

该系统的开发对于推动国潮男装品牌的市场发展、促进国潮文化的传播具有重要的战略意义。它不仅能够推动国潮男装品牌的市场发展,还为国潮文化的持续推广提供了有效的数据支持工具。同时,对于计算机专业的学生而言,这也是一个将理论知识与实践相结合的绝佳案例,有助于提升学生的实际操作能力和创新思维

1.技术选型

Python、Django、vue、elementui、html、css、js、mysql、jdk1.8

2.开发工具

pycharm、navicat

3.功能

3.1【角色】

管理员、用户

3.2【前台功能模块】

  • 登录
  • 注册
  • 首页
  • 男装信息
  • 服装资讯
  • 个人中心

3.3【后台功能模块】

  • 登录
  • 用户管理
  • 男装信息管理【爬虫】
  • 系统管理(轮播图管理、服装资讯、服装资讯分类、系统简介)
  • 我的信息

4.项目演示截图

4.1 首页

4.2 登录

4.3 服装资讯

4.4 报表统计【大屏】

4.5 男装信息管理

4.6 用户管理

4.7 系统管理

5.核心代码

5.1 Settings.py

"""
Django settings for dj2 project.Generated by 'django-admin startproject' using Django 2.0.For more information on this file, see
https://docs.djangoproject.com/en/2.0/topics/settings/For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.0/ref/settings/
"""import os
from concurrent.futures.thread import ThreadPoolExecutor
executor = ThreadPoolExecutor(20)
from util.configread import config_read# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'w5yn#0gn2tt7pvu%hvwt0!lt=!$6+eqp4%m8)u3u#gknm@jm)k'# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = TrueALLOWED_HOSTS = ["*"]# Application definitionINSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',"main",'corsheaders',
]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware',# 'django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware','threadlocals.middleware.ThreadLocalMiddleware',"xmiddleware.xparam.Xparam","xmiddleware.xauth.Xauth",'corsheaders.middleware.CorsMiddleware','django.middleware.common.CommonMiddleware',]
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_HEADERS = ('*')SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_COOKIE_NAME  = "sessionid"
SESSION_COOKIE_PATH  = "/"
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_SECURE = False
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_AGE = 1209600
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_SAVE_EVERY_REQUEST = FalseROOT_URLCONF = 'dj2.urls'
TEMPLATES_DIR = os.path.join(BASE_DIR, "templates")
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [TEMPLATES_DIR],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]WSGI_APPLICATION = 'dj2.wsgi.application'EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = False
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'yclw9@qq.com'
EMAIL_HOST_PASSWORD = 'mhbrkuayvkkgbijd'# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#     }
# }dbtype, host, port, user, passwd, dbName, charset,hasHadoop = config_read("config.ini")
dbName=dbName.replace(" ","").strip()
print(dbtype, host, port, user, passwd, dbName, charset)if dbtype == 'mysql':DATABASES = {'default': {# 'ENGINE': 'django.db.backends.sqlite3',# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),'ENGINE': 'django.db.backends.mysql','OPTIONS': {'sql_mode': 'traditional','init_command': "SET sql_mode='traditional'",  # STRICT_TRANS_TABLES},'NAME': dbName,'USER': user,'PASSWORD': passwd,'HOST': host,'PORT': port,'charset': charset,'TEST': {'CHARSET': charset,'COLLATION': 'utf8_general_ci',},'CONN_MAX_AGE':60},}
else:print("请使用mysql5.5数据库")os._exit(1)# Password validation
# https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validatorsAUTH_PASSWORD_VALIDATORS = [{'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',},{'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',},{'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',},{'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',},
]# Internationalization
# https://docs.djangoproject.com/en/2.0/topics/i18n/LANGUAGE_CODE = 'zh-Hans'# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'USE_I18N = TrueUSE_L10N = True# USE_TZ = True
USE_TZ = False# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/STATIC_URL = '/assets/'
STATICFILES_DIRS =[
os.path.join(BASE_DIR, "templates/front/assets"),
]# media
MEDIA_URL = "/media/"  # 自定义
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')  # 自定义
if os.path.isdir(MEDIA_ROOT) == False:os.mkdir(MEDIA_ROOT)ALIPAY_APP_ID = '9021000132629452'
APP_PRIVATE_KEY_STRING = open('{}/util/alipay_key/app_private_2048.txt'.format(BASE_DIR)).read()
ALIPAY_PUBLIC_KEY_STRING = open('{}/util/alipay_key/alipay_public_2048.txt'.format(BASE_DIR)).read()
ALIPAY_SIGN_TYPE = 'RSA2'

5.2 Urls.py

"""dj2 URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see:https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views1. Add an import:  from my_app import views2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views1. Add an import:  from other_app.views import Home2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf1. Import the include() function: from django.urls import include, path2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
import os
from django.contrib import admin
from django.urls import path,include,re_path
from django.conf.urls import url
from django.views.static import serve
from django.views.generic import TemplateViewfrom . import views
from dj2.settings import dbName as schemaNameurlpatterns = [path('xadmin/', admin.site.urls),path(r'index/',views.index),path('{}/'.format(schemaName),include('main.urls')),#导入schemaNamere_path(r'admin/lib/(?P<p1>.*)/(?P<p2>.*)$', views.admin_lib2),re_path(r'admin/lib/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)$', views.admin_lib3),re_path(r'admin/lib/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)/(?P<p4>.*)$', views.admin_lib4),re_path(r'admin/page/(?P<p1>.*)$', views.admin_page),re_path(r'admin/page/(?P<p1>.*)/(?P<p2>.*)$', views.admin_page2),re_path(r'admin/pages/(?P<p1>.*)$', views.admin_pages),re_path(r'admin/pages/(?P<p1>.*)/(?P<p2>.*)$', views.admin_pages2),re_path(r'front/(?P<p1>.*)$', views.schema_front1),re_path(r'front/(?P<p1>.*)/(?P<p2>.*)$', views.schema_front2),re_path(r'front/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)$', views.schema_front3),re_path(r'front/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)/(?P<p4>.*)$', views.schema_front4),re_path(r'{}/front/(?P<p1>.*)$'.format(schemaName), views.schema_front1),re_path(r'{}/front/(?P<p1>.*)/(?P<p2>.*)$'.format(schemaName), views.schema_front2),re_path(r'{}/front/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)$'.format(schemaName), views.schema_front3),re_path(r'{}/front/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)/(?P<p4>.*)$'.format(schemaName), views.schema_front4),# re_path(r'assets/(?P<p1>.*)$', views.assets1),# re_path(r'assets/(?P<p1>.*)/(?P<p2>.*)$',  views.assets2),# re_path(r'assets/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)$',  views.assets3),# re_path(r'assets/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)/(?P<p4>.*)$',  views.assets4),#re_path(r'admin/(?P<p1>.*)$', views.admin_file1),re_path(r'admin/(?P<p1>.*)/(?P<p2>.*)$', views.admin_file2),re_path(r'admin/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)$', views.admin_file3),re_path(r'admin/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)/(?P<p4>.*)$', views.admin_file4),re_path(r'layui/(?P<p1>.*)$', views.layui1),re_path(r'layui/(?P<p1>.*)/(?P<p2>.*)$',  views.layui2),re_path(r'layui/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)$',  views.layui3),re_path(r'layui/(?P<p1>.*)/(?P<p2>.*)/(?P<p3>.*)/(?P<p4>.*)$',  views.layui4),re_path(r'pages/(?P<p1>.*)$', views.front_pages),re_path(r'pages/(?P<p1>.*)/(?P<p2>.*)$',  views.front_pages2),# re_path(r'pages/(?P<p1>.*)$',  views.front_file1),# re_path(r'(?P<p1>css|jss|img|image|iamges|font|fonts)/(?P<p2>.*)$', views.front_file2),re_path(r'modules/(?P<p1>.*)$', views.front_modules),re_path(r'css/(?P<p1>.*)$', views.css1),re_path(r'js/(?P<p1>.*)$', views.js1),re_path(r'img/(?P<p1>.*)$', views.img1),path(r'test/<str:p1>/',views.test),path(r'null',views.null),
]#判断admin使用vue还是jquery
if os.path.isdir(os.path.join(os.getcwd(),"templates/front/admin/dist/")):urlpatterns.extend([path(r'{}/admin/dist/index.html'.format(schemaName),TemplateView.as_view(template_name='front/admin/dist/index.html')),path(r'{}/admin/'.format(schemaName), TemplateView.as_view(template_name='front/admin/dist/index.html')),# 以下是后台admin的url匹配规则path(r'admin/dist/index.html'.format(schemaName),TemplateView.as_view(template_name='front/admin/dist/index.html')),path(r'admin/', TemplateView.as_view(template_name='front/admin/dist/index.html')),])
else:urlpatterns.extend([path(r'{}/admin/index.html'.format(schemaName),TemplateView.as_view(template_name='front/admin/index.html')),path(r'{}/admin/'.format(schemaName), TemplateView.as_view(template_name='front/admin/index.html')),# 以下是后台admin的url匹配规则path(r'admin/index.html'.format(schemaName),TemplateView.as_view(template_name='front/admin/index.html')),path(r'admin/', TemplateView.as_view(template_name='front/admin/index.html')),])if os.path.isfile(os.path.join(os.getcwd(),"templates/front/index.html")):urlpatterns.extend([path(r'index.html', TemplateView.as_view(template_name='front/index.html')),path(r'{}/index.html'.format(schemaName), TemplateView.as_view(template_name='front/index.html')),path(r'{}/front/index.html'.format(schemaName), TemplateView.as_view(template_name='front/index.html')),path(r'', TemplateView.as_view(template_name='front/index.html')),])

5.3 Users_v.py

# coding:utf-8
__author__ = "ila"from django.http import JsonResponsefrom .users_model import users
from util.codes import *
from util.auth import Auth
import util.message as mes
from dj2.settings import host,port,user,passwd,dbName,hasHadoopdef users_login(request):if request.method in ["POST", "GET"]:msg = {'code': normal_code, "msg": mes.normal_code}req_dict = request.session.get("req_dict")if req_dict.get('role')!=None:del req_dict['role']datas = users.getbyparams(users, users, req_dict)if not datas:msg['code'] = password_error_codemsg['msg'] = mes.password_error_codereturn JsonResponse(msg)req_dict['id'] = datas[0].get('id')return Auth.authenticate(Auth, users, req_dict)def users_register(request):if request.method in ["POST", "GET"]:msg = {'code': normal_code, "msg": mes.normal_code}req_dict = request.session.get("req_dict")error = users.createbyreq(users, users, req_dict)if error != None:msg['code'] = crud_error_codemsg['msg'] = errorreturn JsonResponse(msg)def users_session(request):''''''if request.method in ["POST", "GET"]:msg = {"code": normal_code,"msg":mes.normal_code, "data": {}}req_dict = {"id": request.session.get('params').get("id")}msg['data'] = users.getbyparams(users, users, req_dict)[0]return JsonResponse(msg)def users_logout(request):if request.method in ["POST", "GET"]:msg = {"msg": "退出成功","code": 0}return JsonResponse(msg)def users_page(request):''''''if request.method in ["POST", "GET"]:msg = {"code": normal_code, "msg": mes.normal_code,"data": {"currPage": 1, "totalPage": 1, "total": 1, "pageSize": 10, "list": []}}req_dict = request.session.get("req_dict")tablename = request.session.get("tablename")try:__hasMessage__ = users.__hasMessage__except:__hasMessage__ = Noneif __hasMessage__ and __hasMessage__ != "否":if tablename != "users":req_dict["userid"] = request.session.get("params").get("id")if tablename == "users":msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \msg['data']['pageSize'] = users.page(users, users, req_dict)else:msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \msg['data']['pageSize'] = [],1,0,0,10return JsonResponse(msg)def users_info(request, id_):''''''if request.method in ["POST", "GET"]:msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}data = users.getbyid(users, users, int(id_))if len(data) > 0:msg['data'] = data[0]# 浏览点击次数try:__browseClick__ = users.__browseClick__except:__browseClick__ = Noneif __browseClick__ and "clicknum" in users.getallcolumn(users, users):click_dict = {"id": int(id_), "clicknum": str(int(data[0].get("clicknum", 0)) + 1)}ret = users.updatebyparams(users, users, click_dict)if ret != None:msg['code'] = crud_error_codemsg['msg'] = retreturn JsonResponse(msg)def users_save(request):''''''if request.method in ["POST", "GET"]:msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}req_dict = request.session.get("req_dict")req_dict['role'] = '管理员'error = users.createbyreq(users, users, req_dict)if error != None:msg['code'] = crud_error_codemsg['msg'] = errorreturn JsonResponse(msg)def users_update(request):''''''if request.method in ["POST", "GET"]:msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}req_dict = request.session.get("req_dict")if req_dict.get("mima") and req_dict.get("password"):if "mima" not in users.getallcolumn(users,users):del req_dict["mima"]if "password" not in users.getallcolumn(users,users):del req_dict["password"]try:del req_dict["clicknum"]except:passerror = users.updatebyparams(users, users, req_dict)if error != None:msg['code'] = crud_error_codemsg['msg'] = errorreturn JsonResponse(msg)def users_delete(request):''''''if request.method in ["POST", "GET"]:msg = {"code": normal_code, "msg": mes.normal_code, "data": {}}req_dict = request.session.get("req_dict")error = users.deletes(users,users,req_dict.get("ids"))if error != None:msg['code'] = crud_error_codemsg['msg'] = errorreturn JsonResponse(msg)

5.4 Auth.py

# coding:utf-8
# author:ila
import base64, copy
from django.http import JsonResponse
from django.apps import appsfrom util.codes import *
from util import message as mesclass Auth(object):def authenticate(self, model, req_dict):"""用户登录,登录成功返回token;登录失败返回失败原因:param username:账号:param password:密码:return: json"""msg = {'code': normal_code, 'msg': mes.normal_code, 'data': {}}tablename = model.__tablename__encode_dict = {"tablename": tablename, "params": req_dict}encode_str = base64.b64encode(str(encode_dict).encode("utf-8"))msg['data']["id"] = req_dict.get("id")msg["id"] = req_dict.get("id")msg['token'] = encode_str.decode('utf-8')return JsonResponse(msg)def identify(self, request):"""用户鉴权:param request:本次请求对象:return: list"""msg = {'code': normal_code, 'msg': mes.normal_code, 'data': {}}# django的header被处理过了token = request.META.get('HTTP_TOKEN')if token  and token !="null":auth_token = copy.deepcopy(token)decode_str = base64.b64decode(auth_token).decode("utf8")decode_str=decode_str.replace('"null"','""').replace('null','""')decode_dict = eval(decode_str)tablename2 = decode_dict.get("tablename")params2 = decode_dict.get("params",{})datas=NoneallModels = apps.get_app_config('main').get_models()for model in allModels:if model.__tablename__ == tablename2:datas = model.getbyparams(model, model, params2)if not datas:msg['code'] = username_error_codemsg['msg'] = '找不到该用户信息'result = msgelse:request.session['tablename'] = tablename2request.session['params'] = params2msg['msg'] = '身份验证通过。'result = msgelse:msg['code'] = 401msg['msg'] = 'headers未包含认证信息。'result = msgreturn result

6.LW文档大纲参考

具体LW如何写法,可以咨询博主,耐心分享! 

你可能还有感兴趣的项目👇🏻👇🏻👇🏻

更多项目推荐:计算机毕业设计项目

Python毕业设计精品项目《1000套》

微信小程序毕业设计精品项目《1000套》

大数据/机器学习毕业设计精品项目《1000套》

如果大家有任何疑虑,请在下方咨询或评论

相关文章:

计算机毕业设计 基于Python国潮男装微博评论数据分析系统的设计与实现 Django+Vue 前后端分离 附源码 讲解 文档

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…...

React 表单与事件

React 表单与事件 React 是一个用于构建用户界面的 JavaScript 库&#xff0c;它通过组件化的方式来提高开发效率和代码的可维护性。在 React 应用中&#xff0c;表单和事件处理是核心功能之一&#xff0c;它们允许用户与应用程序进行交互。本文将深入探讨 React 中的表单处理…...

Appium独立测试自动化初始化脚本

1、查看环境初始化参数 确保appium已经开起来了&#xff0c;设置ip ,并点击启动 打开夜神模拟器&#xff0c;点击工具--设置 最下面的版本说明&#xff0c;双击进去 版本号这里再去单击。 直到进入到开发者模式。 可能我们不是开发者模式打开的状态&#xff0c;所以软件访问模…...

Nginx反向代理配置支持websocket

一、官方文档 WebSocket proxying 为了将客户端和服务器之间的连接从HTTP/1.1转换为WebSocket&#xff0c;使用了HTTP/1.1中可用的协议切换机制&#xff08;RFC 2616: Hypertext Transfer Protocol – HTTP/1.1&#xff09;。 然而&#xff0c;这里有一个微妙之处:由于“升级”…...

C# 游戏引擎中的协程

前言 书接上回&#xff0c;我谈到了Unity中的协程的重要性&#xff0c;虽然协程不是游戏开发“必要的”&#xff0c;但是它可以在很多地方发挥优势。 为了在Godot找回熟悉的Unity协程开发手感&#xff0c;不得不自己做一个协程系统&#xff0c;幸运的是&#xff0c;有了Unity的…...

如何封装微信小程序中的图片上传功能

文章目录 前言一、需求分析与设计思路二、上传图片功能封装三、页面调用示例四、功能改进与扩展4.1 压缩图片4.2 上传进度4.3 重试机制 五、总结 前言 在微信小程序开发中&#xff0c;图片上传功能是一个十分常见的需求&#xff0c;不管是社交分享、商城中的商品图片上传&…...

被问界/理想赶超!奔驰CEO再度“出马”,寻找中国外援

来自中国车企的全方位、持续施压&#xff0c;让大部分外资车企开始寻求更多的本地化合作来实现技术升级。传统豪华品牌也同样如此。 本周&#xff0c;知情人士透露&#xff0c;梅赛德斯奔驰首席执行官Ola Kllenius计划再次访问中国&#xff0c;目的是进一步寻求和扩大与本地技术…...

魔改xjar支持springboot3,

jar包加密方案xjar, 不支持springboot3。这个发个魔改文章希望大家支持 最近公司需要将项目部署在第三方服务器&#xff0c;于是就有了jar包加密的需求&#xff0c;了解了下目前加密方案现况如下: 混淆方案&#xff0c;就是在代码中添加大量伪代码&#xff0c;以便隐藏业务代…...

python json文件读写

在Python中处理JSON文件是一个常见的任务。JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。Python提供了内置的json模块来帮助我们读取和写入JSON格式的数据。 如何读…...

Android常用C++特性之std::find_if

声明&#xff1a;本文内容生成自ChatGPT&#xff0c;目的是为方便大家了解学习作为引用到作者的其他文章中。 std::find_if 是 C 标准库中的一个算法&#xff0c;用于在给定范围内查找第一个满足特定条件的元素。它接受一个范围&#xff08;由迭代器指定&#xff09;和一个谓词…...

19 vue3之自定义指令Directive按钮鉴权

directive-自定义指令(属于破坏性更新) Vue中有v-if,v-for,v-bind,v-show,v-model 等等一系列方便快捷的指令 今天一起来了解一下vue里提供的自定义指令 Vue3指令的钩子函数 created 元素初始化的时候beforeMount 指令绑定到元素后调用 只调用一次mounted 元素插入父级dom…...

数据资产新范式,URP城市焕新平台东博会首发!

城市数据资产蕴藏着巨大的宝藏。今年1月&#xff0c;国家数据局印发《“数据要素”三年行动计划&#xff08;2024—2026年&#xff09;》&#xff0c;将“数据要素智慧城市”上升为“数据要素”计划的重要部分&#xff0c;加速释放城市数据资产价值。 高质量发展以数据要素驱动…...

儿童乐园软件下载安装 佳易王游乐场会员扣次管理系统操作教程

一、前言 儿童乐园软件下载安装 佳易王游乐场会员扣次管理系统操作教程 软件为绿色免安装版&#xff0c;已经内置数据库&#xff0c;不需再安装数据库文件&#xff0c;软件解压即可。 二、软件程序教程 1、软件可同时管理多个项目&#xff0c;项目设置方法如图&#xff0c;点…...

windows下 Winobj.exe工具使用说明c++

1、winobj.exe工具下载地址 WinObj - Sysinternals | Microsoft Learn 2、接下来用winobj.exe查看全局互斥&#xff0c;先写一个小例子 #include <iostream> #include <stdlib.h> #include <tchar.h> #include <string> #include <windows.h>…...

提示词工程 (Prompt Engineering) 最佳实践

prompt Engineering 概念解析 提示工程是一门较新的学科&#xff0c;关注提示词开发和优化&#xff0c;帮助用户将大语言模型&#xff08;Large Language Model, LLM&#xff09;用于各场景和研究领域。研究人员可利用提示工程来提升大语言模型处理复杂任务场景的能力&#xf…...

【读写分离?聊聊Mysql多数据源实现读写分离的几种方案】

文章目录 一.什么是MySQL 读写分离二.读写分离的几种实现方式(手动控制)1.基于Spring下的AbstractRoutingDataSource1.yml2.Controller3.Service实现4.Mapper层5.定义多数据源6.继承Spring的抽象路由数据源抽象类&#xff0c;重写相关逻辑7. 自定义注解WR&#xff0c;用于指定当…...

C++游戏

宠粉福利&#xff01; 目录 1.猜数字 2.五子棋 3.打怪 4.跑酷 5.打飞机 6.扫雷 1.猜数字 #include <iostream> #include <cstdlib> #include <ctime>int main() {std::srand(static_cast<unsigned int>(std::time(0))); // 设置随机数种子int …...

探索顶级低代码开发平台,实现创新

文章盘点ZohoCreator、OutSystems等10款顶尖低代码开发平台&#xff0c;各平台以快速开发、集成、数据安全等为主要特点&#xff0c;适用于不同企业需求&#xff0c;助力数字化转型。 一、Zoho Creator Zoho Creator 是一个低代码开发平台&#xff0c;它简化了应用开发中的复杂…...

Html--笔记01:使用软件vscode,简介Html5--基础骨架以及标题、段落、图片标签的使用

一.使用VSC--全称&#xff1a;Visual Studio Code vscode用来写html文件&#xff0c;打开文件夹与创建文件夹&#xff1a;①选择文件夹 ②拖拽文件 生成浏览器的html文件的快捷方式&#xff1a; &#xff01;enter 运行代码到网页的方法&#xff1a; 普通方法&#xff1a…...

探索反向传播:深度学习中优化神经网络的秘密武器

反向传播的概念&#xff1a; 反向传播&#xff08;Backpropagation&#xff09; 是深度学习中训练神经网络的核心算法。它通过有效计算损失函数相对于模型参数的梯度&#xff0c;使得模型能够通过梯度下降等优化方法逐步调整参数&#xff0c;从而最小化损失函数&#xff0c;提…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...