- 博客(27)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 java - JWT 集成
文章目录导入坐标生成token 导入坐标 <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency> 生成token @Test public void test2(){ //添加构成JWT的
2022-04-28 15:34:13
831
原创 Antisamy 集成
文章目录导入坐标写过滤器创建XssRequestWrapper 类配置类 AntiSamy是OWASP的一个开源项目,通过对用户输入的 HTML / CSS / JavaScript 等内容进行检验和清理,确保输入符合应用规范。AntiSamy被广泛应用于Web服务对存储型和反射型XSS的防御中。 导入坐标 <dependency> <groupId>org.owasp.antisamy</groupId> <artifactId>antisamy&l
2022-04-28 14:32:52
316
原创 hibernate validate 集成
文章目录常用注解导入maven 坐标实体类控制器 常用注解 注解 说明 @AssertTrue 用于boolean字段,该字段只能为true @AssertFalse 用于boolean字段,该字段只能为false @CreditCardNumber 对信用卡号进行一个大致的验证 @DecimalMax 只能小于或等于该值 @DecimalMin 只能大于或等于该值 @Email 检查是否是一个有效的email地址 @Future 检查该字段的日期是否是属于将来的日期
2022-04-28 14:21:28
329
原创 swagger2 knife4j 集成配置
文章目录导入坐标写配置类常用注解knife4j 集成导入坐标 导入坐标 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <dependency> <gro
2022-04-28 13:46:49
715
原创 简单的发送邮件
@Service public class SendMailServiceImpl implements SendMailService { @Autowired private JavaMailSender mailSender; // 定义发送邮箱数据变量 private String from = ""; private String to = ""; private String subject = "测试邮件"; private String
2022-04-18 18:16:20
115
原创 随机生成验证码工具类
import java.util.Random; /** * 随机生成验证码工具类 */ public class ValidateCodeUtils { /** * 随机生成验证码 * @param length 长度为4位或者6位 * @return */ public static Integer generateValidateCode(int length){ Integer code =null; if
2022-04-18 09:40:04
211
原创 封装POIUtils工具类
import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.
2022-04-17 17:24:20
173
原创 JWT手动签发| 自动签发
from rest_framework_jwt.serializers import jwt_payload_handler,jwt_encode_handler class UserModelSerializer(ModelSerializer): username = serializers.CharField(max_length=32) class Meta: model = models.UserInfo fields = ['username'
2022-03-18 13:07:19
482
原创 基于jwt的登录/注册功能实现
# views.py # 登录视图 class LoginView(ViewSet): # 登录 @action(methods=['POST'], detail=False) def login(self, request, *args, **kwargs): ser_obj = ser.UserModelSerializer(data=request.data) if ser_obj.is_valid(): token =
2022-03-15 17:59:54
675
原创 itsdangerous用法
pip3 install itsdangerous # 加密 from itsdangerous import TimedJSONWebSignatureSerializer as TJWSS from django.conf import settings SECRET_KEY = 'smallmq' # 密钥 300s tjwss = TJWSS(SECRET_KEY , 300) # 要加密的数据 data = db8c553eba2fb569 # 加密,返回的是bytes类型,decode解
2022-03-15 17:21:20
196
原创 celery异步框架的使用
安装 pip install celery pip install django-redis # Windows中还需要安装以下模块,用于任务执行单元 pip install eventlet redis 配置 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/0", "OPTIONS": {
2022-03-15 17:08:54
662
原创 数据库配置
# 数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'new_blog', 'USER':'smallmq', 'PASSWORD':'wangmengqi123', 'HOST':'127.0.0.1',
2022-03-15 16:07:28
1193
原创 redis配置
pip3 install django-redis # settings.py # 缓存配置 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/0", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultCli
2022-03-15 16:05:49
113
原创 日志文件配置
需要手动创建日志文件!!! # 日志配置 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s' }, 'simple': {
2022-03-15 16:04:43
166
原创 static配置/media配置
STATIC_URL = '/static/' # 当你关闭DEBUG模式时,需要打开STATIC_ROOT注释,同时注释掉STATICFILES_DIRS, # 然后执行命令收集静态文件:python manage.py collectstatic STATIC_ROOT = os.path.join(BASE_DIR,'static') # STATICFILES_DIRS = ( # BASE_DIR / 'static', # ) MEDIA_URL = '/media/' MEDIA_RO
2022-03-15 16:03:30
510
原创 中国时区设置
LANGUAGE_CODE = 'zh-Hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = False
2022-03-15 15:57:45
474
原创 settings基本配置
DEBUG = True/False # 在项目上线时候改为False ALLOWED_HOSTS = ['*',] # 允许的主机访问 INSTALLED_APPS = [ 'simpleui', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages'
2022-03-15 15:52:05
578
原创 跨域问题解决方法
安装模块 pip install django-cors-headers 注册app INSTALLED_APPS = [ ... 'corsheaders', ... ] 注册中间件 # 将该配置尽量写在高的位置 # 在SessionMiddleware后面以及CommonMiddleware前面 MIDDLEWARE_CLASSES = ( 'corsheaders.middleware.CorsMiddleware', ... ) 配置 CORS_ALL
2022-03-15 15:44:30
590
原创 堆排序python实现
堆排序,即利用堆的特性来进行排序,实现堆排序的思路是把数组构建成一颗二叉树,并随着每次堆的变化更新堆顶的最大/最小值 堆排序的时间复杂度在所有情况下都是O(n*lgn),并且他是一个不稳定的算法. 堆是一种数据结构,它是一种特殊的完全二叉树,如果这个堆是一个大顶堆(最大的元素在最上边),那么每个节点上的元素都应该比他的子节点要大,最大的元素在根节点上;反之亦然. 先给出堆排序的代码,稍后分析 ''' 作者:smallMQ 堆排序主要思想: 利用大顶树的性质,将最大的数放到最上边,.
2021-05-22 18:54:36
102
原创 动态规划|矩阵连乘|python实现
问题描述: 给定n个矩阵{A1,…,An}且相邻两个矩阵是可乘的,考察这n个矩阵的连乘积问题. · 由于矩阵乘法满足结合律,所以计算矩阵的连乘可以有许多不同的计算次序。这种计算次序可以用加括号的方式来确定。 · 若一个矩阵连乘积的计算次序完全确定,也就是说该连乘积已完全加括号,则可以依此次序反复调用2个矩阵相乘的标准算法计算出矩阵连乘积。 将矩阵连乘积A.1…A简记为A[i:j],这里i<=j。 考察计算A[i:j]的最优计算次序。设这个计算次序在矩阵Ak和Ak+1之间将矩阵链断开,i<=k&l
2021-05-22 18:42:53
5251
1
原创 快速排序|python实现
快速排序|python实现 快速排序算法的主要思想是在数组中选择一个关键字key,并对数组进行遍历,将所有比它小的数放在他的左边,反之放在右边. 快速排序算法的平均时间复杂度为O(nlg n),最好情况下的时间复杂度为O(nlg n),最坏情况下是O(n*n),因此快速排序算法是一个不稳定的排序 python代码实现 1基础类型(占空间) list1 = [2, 1, 10, 5, 2, 6, 3, 4, 20, 6, 7, 8] def QuickSort(l): if (len(l) <
2021-05-22 18:08:04
121
原创 归并排序|python实现
归并排序|python实现 归并排序所采用的思想主要是分治思想.其主要实现方法是将数组先进行拆分,其次进行合并.将整个数组拆分为多个小数组排序问题,最后再将其进行归并排序实现,其时间复杂度为O(n*lg n),是一种稳点的排序方式. 代码部分 ''' 作者:smallMQ 主要思想:分治思想\递归 无论怎样时间复杂度都为O(n*lgn) 稳定 ''' list1 = [2, 1, 10, 5, 2, 6, 3, 4, 20, 6, 7, 8] def MergeSort(l): if (le
2021-05-22 10:18:25
147
原创 初级排序算法python实现|插入排序|选择排序|冒泡排序
插入排序 直观的讲,插入排序算法是把给定数组元素中的元素依次插入到一个新的数 组中,最终得到一个完整的有序列表. 插入排序是一个**稳定的排序算法** 插入排序的平均时间复杂度为O(n^2),最好的情况是O(n),最坏的情况则是O(n^2). 插入排序的空间复杂度为O(1). 插入排序的主要思想是:将列表进行分割成两半,左边表示有序,右边表示无序,初始默认左有一个元素,一个元素肯定为有序的,刚开始先遍历右边的列表元素 ,让列表右边部分与左边部分进行逐一比较(即此时也要遍历列表左边部分),并将每次
2021-04-25 19:12:24
205
1
空空如也
vue打包后index页面不显示,检查页面元素,请求都正常
2022-03-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅