机智豪SAMA
码龄6年
关注
提问 私信
  • 博客:112,478
    112,478
    总访问量
  • 60
    原创
  • 1,667,375
    排名
  • 30
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2018-11-28
查看详细资料
个人成就
  • 获得137次点赞
  • 内容获得74次评论
  • 获得213次收藏
  • 代码片获得193次分享
创作历程
  • 1篇
    2022年
  • 5篇
    2021年
  • 21篇
    2020年
  • 33篇
    2019年
成就勋章
TA的专栏
  • go
    6篇
  • 数据库
    1篇
  • docker
    1篇
  • 自学旅程
    44篇
  • Java基础
    3篇
  • Python相关
    33篇
  • CTF
    1篇
  • Mybatis
    2篇
  • 前端
    3篇
  • 其他
    2篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

347人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

mongoDB 数组类型分页

背景:mongo有一个用户集合,里面有一个字段存放了用户收藏信息,该doc字段如下:有一个需求,获取用户的收藏信息,并分页。分页一般需要返回:总数量,每一个页面的具体数据。两种方式:1. 一次查询,利用aggregate聚合字段可能查询会有高额的开销结果rt:查询的语句为:db.getCollection('users').aggregate([ {"$project": { "stars": 1 }}, // 只返回收藏字段 { "$facet": {
原创
发布博客 2022.05.13 ·
669 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

golang 对类型不同的结构体排序(空接口数组排序)

假如有多种结构体在一个空接口数组里面。(可能的场景:从数据库取出3种点赞,评论,关注等通知,排序获取时间最近的x个,或者从数据库中选出小孩,年青人,老人对年龄排序)个人总结有2种方法:自定义接口,即为所有结构体实现方法返回该值,以下代码中的A, B, C皆实现了getAge方法。package mainimport ( "fmt" "sort")type A struct { Age int}type B struct { Age int}ty
原创
发布博客 2021.04.06 ·
414 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

为Jupyter 设置 多个不同Python版本 的kernel。

我的jupyter是python 3.7的内核,想换个3.8的内核,个人解决方案:在命令行中:ipython kernel install --name "python38" --user会在当前用户下创建一个配置文件。进入该目录。修改kernel.json中的argv,(由于本人存在多个python版本,且没用虚拟环境,命令行输入python 是python 3.7,python38是python3.8),所以我改成了如下:(如果你们没有配置环境变量可以直接将python.exe的路径全部
原创
发布博客 2021.04.05 ·
864 阅读 ·
0 点赞 ·
1 评论 ·
1 收藏

Python 异步编程 + tkinter 尝试

首先先科普一下,tkinter是单线程的。也就是不推荐主线程跑GUI,再另外一个线程里面修改GUI里面的内容。(比如说用多线程爬虫然后在另外一个线程里面把爬取的内容放到GUI中,你当然可以这么做,只是不推荐)由于requests不支持async编程,所以这里使用了aiohttp。下面是爬取图片异步的方法以及代码,代码中有注释(欢迎python大佬指出错误):import tkinterfrom PIL import Image, ImageTkfrom io import BytesIOimpo
原创
发布博客 2021.04.03 ·
1804 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

为Docker for windows设置代理,以及尝试使用Dockerfile创建go web镜像时,出现dial tcp xxxxx: connect: connection refused

尝试从dockerfile创建镜像,结果给我爆了一堆超时错误,或者拒绝连接啥的,解决方案如下:解决方案1:直接在settings里面找到代理先设置:注意,这个HTTP代理地址是你自己的本地IP代理,(你可以理解docker容器和你的电脑在一个局域网内),所以你要设置你自己的局域网IP+端口号(CMD 中ipconfig),还要在翻墙工具里面设置 “允许来自局域网的连接”类似的字眼。即可解决方案2:方案1解决了连接问题,但go的有些模块还是安装不了,就出现了如标题所示的dial tcp xxxxx
原创
发布博客 2021.03.21 ·
5736 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

go gorm使用joins方法对同一个表使用连接查询,(查询一个表2次/

有的时候需要对一个表查询2次,"需要查找的外键在同一个表中这种情况,leetcode 上有一个类似的SQL题。gorm 如何使用join呢。此题SQL的答案之一为(我的答案:SELECT emp.name (AS "Employee"这个可删除)FROM Employee as empINNER JOIN Employee AS man on man.id = Employee.ManagerIdWHERE emp.Salary > man.Salary;转换为go
原创
发布博客 2021.02.23 ·
2362 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

go gin web框架实现从GET参数中(像PHP一样)获取 数组 或者map 映射。

Stack Overflow原问题与回答的链接:How can golang gin get the array parameters of GET requests query string?。使用QueryArray来直接获取数组例如/GET ?a[]=1&a[]=2后端获取方式为// Return an arraya, _ := ctx.GetQueryArray("a[]") // Or just use QueryArray("a[]") directly.ctx.JSON
原创
发布博客 2020.11.14 ·
1221 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

gin-gonic 框架比较好用的热部署框架 gin 使用

本人是用过Air的,Air的确是很方便,直接一行air完事,但有时在修改源码之后,air重新部署时,控制台会打出端口被占用,然后你更新的代码会不起作用。这个时候只能(或许有其他的方法)Ctrl c取消再重新打开air。比较的麻烦在网络上找到了另外一个热部署框架gin(对,和web框架gin一模一样的名字。)。具体使用方法,先下载gingo get github.com/codegangsta/gin下载成功后,直接gin即可,但如果用的gin等web框架, 就不能直接使用。gin需要一个未被占用
原创
发布博客 2020.10.21 ·
1391 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

Go 中对mongodb中某一个值+1并返回查找的结果

没找到什么直接的教程,我这里直接写一个例子(mongodb是真的香,小声BB)使用mongodb的FindOneAndUpdate()方法。具体实现:// collection 为 某一个具体的Collection.var prototype xxx // 你自己的数据结构id, err := primitive.ObjectIDFromHex("xxxxxxxxx") // 转为id值filter := bson.D{{"_id": id}} //查询idafter := option
原创
发布博客 2020.09.18 ·
2204 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

为tkinter 设置托盘(利用winico),然后打包使用。避免使用大量的pywin32代码

英文渣,参见SO的问题与答案:https://stackoverflow.com/questions/62372144/how-to-add-system-tray-to-my-tkinter-application-and-avoid-using-lots-of-pywin32
原创
发布博客 2020.09.02 ·
650 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

在Go 的结构体中使用多个标签,以及不希望部分属性转到json中。

写gin项目的时候为了对应表单,gorm等字段。需要为结构体中的成员使用标签。使用多标签:type A struct{ ID int Username string `form:"username" gorm:"varchar(255);not null"` .....}
原创
发布博客 2020.06.23 ·
6935 阅读 ·
5 点赞 ·
0 评论 ·
1 收藏

为Windows的Python GUI设置正确的DPI感知,出现__main__.pyinstallerimporterror failed to load dynlib/dll.

先上SO 原问题(本人提出的):__main__.pyinstallerimporterror-failed-to-load-dynlib-dll-shcore.,博客写的有点晚。本人做了一个tkinter GUI的程序,为了解决缩放和鼠标坐标的问题,使用了import ctypesctypes.windll.shcore.SetProcessDpiAwareness(2)是可以在我的电脑上正常工作的(Windows 10)。然后换了Windows 7,出现了如题中出现的问题。出现问题的原因是(
原创
发布博客 2020.06.22 ·
1877 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

vuejs第一个hello vue渲染失败

第一次学vue,照着官网的代码敲,结果页面总是显示{{ message }},而不渲染出来。经过多次查询发现,原来官网用的是 var app = new Vue({ el: '#app', // 是l(英文字母),不是1数字。官网这字体... data: { message: "Hello Vue!" } })好吧,可能是我太蠢了。...
原创
发布博客 2020.06.20 ·
589 阅读 ·
1 点赞 ·
3 评论 ·
0 收藏

Goland 控制台中 Gin 颜色代码 显示异常(出现奇怪的代码)

Stack Overflow原问题在这(我提的):Goland shows some strange characters in console在Goland中直接运行代码时,会出现一些很奇怪的代码:解决方案:打开 Help | Find Action…键入Registry。查找go.run.processes.with.pty并禁用它。...
原创
发布博客 2020.06.11 ·
1847 阅读 ·
7 点赞 ·
7 评论 ·
1 收藏

解决OpenCV, Pywin32 模块在Pycharm中没有智能提示。

只需要安装opencv-contrib-python模块即可。注意:cv2所在的文件夹(或者是Python所在的文件夹不能有中文。本人解决的方法就是重装了Python并修改了安装路径,最后才有提示,)
原创
发布博客 2020.05.09 ·
764 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Python One-line code记录,And和Or的妙用

简单的If和Else:a = 4if a > 3: if a > 4: j = ">4" else: j = "3< <=4"else: j = "<=3"# there are the same.print(j)print(a>3 and (a>4 and ">4" or...
原创
发布博客 2020.03.24 ·
423 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

50行代码不到 利用python+tkinter制作基础的截图工具

完整代码import tkinter as tk# from tkinter import *from PIL import Image, ImageGrab, ImageTkimport ctypes, sysif sys.getwindowsversion().major == 10: ctypes.windll.shcore.SetProcessDpiAwareness(...
原创
发布博客 2020.03.20 ·
379 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

利用pandas 和 ttk.Treeviews制作xlsx视图工具

import tkinter as tkfrom tkinter import ttkimport pandas as pddef Start(): fp = pd.read_excel("./test.xlsx") for _ in range(len(fp.index.values)): tree.insert('','end',value=tuple(...
原创
发布博客 2020.03.19 ·
1324 阅读 ·
0 点赞 ·
2 评论 ·
11 收藏

Python 性能测试,关于创建,查询列表List,元组Tuple,集合Set,字典Dict,有序字典OrderedDict的 速度 和 空间 测试

测试代码如下:import timeit,timefrom sys import getsizeof as SizeTest_List = [range(10)]print("列表内存{}".format(Size(Test_List)))Test_Set = set(range(10))print("Set内存{}".format(Size(Test_Set)))Test_Tup...
原创
发布博客 2020.03.19 ·
699 阅读 ·
4 点赞 ·
0 评论 ·
0 收藏

Python 制作FPS的后坐力下压

这个代码实现简单的一批,直接上代码,哎放假好无聊噢,import timeimport win32apiimport win32conLMB = win32con.VK_LBUTTONdef is_lmb_pressed(): return win32api.GetKeyState(LMB) < 0def mouse_move_relative(dx, dy):...
原创
发布博客 2020.02.12 ·
1178 阅读 ·
2 点赞 ·
0 评论 ·
7 收藏
加载更多