首页
畅所欲言
友情链接
壁纸大全
数据统计
直播
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
12,612 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
10,340 阅读
3
gradle-5.4.1-all.zip下载
8,243 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
7,369 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
6,711 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
标签搜索
弹性布局
Lan
累计撰写
597
篇文章
累计收到
583
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
直播
搜索到
139
篇与
Python
的结果
2022-11-07
图床,通过Python调用api上传图片到Gitlab
用过一段时间的PicGo,但是感觉太重了,为了一个上传图片去装一个软件有点太麻烦。然后目前个人感觉也就Gitlab速度还可以一点,于是昨天翻了官方文档踩了很多坑,总算搞好了。现将关键代码放到这里。 file_path = datetime.datetime.now().strftime('zb_users/upload/%Y/%m/') headers = {'PRIVATE-TOKEN': '这里放你的项目token'} img = file.file.read() ext = file.content_type.split('/')[-1] file_path = urllib.parse.quote(file_path + uuid.uuid4().hex + '.' + ext).replace('/', '%2f') url = f'https://gitlab.com/api/v4/projects/这里放你的项目ID/repository/files/{file_path}' response = await requests.post(url, headers=headers, json={ 'branch': 'master', 'content': base64.b64encode(img).decode('utf-8'), 'author_email': 'blog@lanol.cn', 'author_name': 'Lan', 'encoding': 'base64', 'commit_message': 'www.lanol.cn' }) res = await response.json()然后花了点时间写了个小前端用来上传,支持选择,拖拽,粘贴文件进行上传。
2022年11月07日
215 阅读
1 评论
0 点赞
2022-07-25
修改pycharm项目默认编码为UTF-8
操作路径:File->Settings->Editor->File Editings->Project Encoding
2022年07月25日
61 阅读
0 评论
1 点赞
2022-05-11
Python PDF转图片
import os import fitz # fitz就是pip install PyMuPDF # pip install PyMuPDF -i https://pypi.douban.com/simple def pyMuPDF_fitz(pdfPath, imagePath): pdf_doc = fitz.open(pdfPath) for pg in range(pdf_doc.pageCount): page = pdf_doc[pg] rotate = int(1) # 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。 # 此处若是不做设置,默认图片大小为:792X612, dpi=96 zoom_x = 3 # (1.33333333-->1056x816) (2-->1584x1224) zoom_y = 3 mat = fitz.Matrix(zoom_x, zoom_y).prerotate(rotate) pix = page.get_pixmap(matrix=mat, alpha=False) if not os.path.exists(imagePath): # 判断存放图片的文件夹是否存在 os.makedirs(imagePath) # 若图片文件夹不存在就创建 pix.save(imagePath + '/' + 'images_%s.png' % pg) # 将图片写入指定的文件夹内 if __name__ == "__main__": # 1、PDF地址 pdfPath = 'file.pdf' # 2、需要储存图片的目录 imagePath = './' pyMuPDF_fitz(pdfPath, imagePath)
2022年05月11日
82 阅读
0 评论
0 点赞
2022-04-18
python对一个list进行轮询
# 生成一个0-4的list data = list(range(5)) # 轮询10次 for i in range(10): # pop掉第0个,并append到最后一个 data.append(data.pop(0)) # 输出 print(data[0])
2022年04月18日
358 阅读
0 评论
0 点赞
2022-03-16
DRF利用JWT实现用户认证
根据上一篇文章可以知道JWT的原理和意义所以在这里分享一下jwt在drf中的应用auth.py将jwt写出来import datetime import jwt from django.conf import settings from jwt import exceptions from rest_framework.authentication import BaseAuthentication from rest_framework.exceptions import AuthenticationFailed def create_token(payload, exp=30): headers = {'typ': 'jwt', 'alg': 'HS256'} payload['exp'] = datetime.datetime.utcnow() + datetime.timedelta(days=exp) return jwt.encode(payload, settings.SECRET_KEY, "HS256", headers) class JwtAuthentication(BaseAuthentication): def authenticate(self, request): # 获取请求头中Token token = request.META.get('HTTP_TOKEN') try: payload = jwt.decode(token, settings.SECRET_KEY, "HS256") except exceptions.ExpiredSignatureError: raise AuthenticationFailed({'code': 204, 'msg': 'Token已失效'}) except jwt.DecodeError: raise AuthenticationFailed({'code': 204, 'msg': 'Token认证失败'}) except jwt.InvalidTokenError: raise AuthenticationFailed({'code': 204, 'msg': 'Token非法'}) return payload, tokensettings.py在drf的view中全局应用此认证方式REST_FRAMEWORK = { "DEFAULT_AUTHENTICATION_CLASSES": ['utils.auth.JwtAuthentication'] }views.py一个登录的view,将认证方式设为空,另外一个可以直接获取# Create your views here. from rest_framework.views import APIView from utils.auth import create_token from utils.commen import standard_response class LoginView(APIView): authentication_classes = [] @staticmethod def post(request, *args, **kwargs): username = request.data.get('username') password = request.data.get('password') if not username == 'lan' and password == 'password': return standard_response(None, msg='用户名或密码错误') token = create_token({'username': username}) return standard_response(data=token, msg='登陆成功') class IndexView(APIView): @staticmethod def post(request, *args, **kwargs): return standard_response(data='来源网站:www.lanol.cn', msg=f'欢迎您{request.user["username"]}') 登录获取Token验证Token成功Token超时失效这个auth.py不止在drf中可用,其他的web框架,fastapi啥的也是通用的,只要将返回改一下即可
2022年03月16日
353 阅读
8 评论
1 点赞
2022-03-01
django 软删除 默认查询为True 传任何非bool值查询出所有的
发现了一个Bug:外键的外键不会进行is_valid验证{dotted startColor="#ff6c6c" endColor="#1989fa"/}class ValidQueryset(models.QuerySet): def filter(self, *args, **kwargs): is_valid = kwargs.pop('is_valid', True) if isinstance(is_valid, bool): kwargs['is_valid'] = is_valid return super().filter(*args, **kwargs) class BaseManage(models.Manager): _queryset_class = ValidQueryset class BaseModel(models.Model): is_valid = models.BooleanField(default=True, verbose_name='数据有效/无效') objects = BaseManage() class Meta: abstract = True
2022年03月01日
134 阅读
0 评论
1 点赞
2022-03-01
django drf serializers 序列化类树形递归的实现 序列化外键字段列表树
父序列化器:class ReadDeptSerializer(serializers.ModelSerializer): id = serializers.IntergerField() children = ChildDeptSerializer(many=True) class Meta: model = Dept exclude = ['company','parent'] depth = 1子序列化器class ChildDeptSerializer(serializers.ModelSerializer): children = serializers.SerializerMethodField() class Meta: model = Dept depth = 1 exclude = ['company'] def get_children(self,obj): if obj.children: return childDeptSerializer(obj.children,many=True).data return None
2022年03月01日
328 阅读
0 评论
1 点赞
1
2
3
...
20