自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lei Gong's blog

Power Humanity With Code

  • 博客(84)
  • 收藏
  • 关注

原创 Django-InlineModelAdmin(含具体例子)

InlineModelAdmin类的作用在于,可以在Model A页面上编辑Model B表的字段,这只需要A和B存在外键关系。他有两个子类,区别仅仅在于使用的(前端显示)模板不同,一个垂直一个水平排序字段,使用时要直接使用这两个子类。class TabularInline (水平,类表格式)class StackedInline (垂直)具体事例:models设定:from django.db import modelsclass Author(models.Model):

2021-03-26 16:40:52 818

原创 MongoDB集群(基于分片集、复制集)搭建(跨服务器 或 单一服务器多进程多节点)

搭建一个用于开发/测试环境的结构的分片集,即一个Router(mongos),一个Config Server(ReplSet)和一个分片(mongod进程或ReplSet)。实际搭建时每个结构都可以包含复制集分片:每个分片储存一定量的数据,分片可以被配置为复制集。Mongos:作为客户端与集群间的路由器,转发请求至分片。Config Server:存储集群配置与元数据,为保证高可用必须被配置为复制集。其大致结构如下图:Config Server必须被配置为复制集,其中存储了集群的元数据,

2021-01-23 17:34:03 1649 1

原创 Django-admin-过滤器(搜索框、下拉框)

django框架的admin模块,通过list_filter提供给用户自定义分类查询的接口,并且我们可以在原有类的基础上扩展出符合自身应用场景的过滤器。定义模型以 Student 模型为准,管理类为 StudentAdminclass Student(models.Model): id = models.AutoField(primary_key=True) first_name = models.CharField( max_length=20, verb

2020-08-29 16:04:06 6498

原创 KCD China 2021

Kubernetes Community Days China Beijing--Oct 16, 2021

2022-10-03 10:15:07 315 1

原创 Linux 清空文件(6种方式)

Linux清空文件内容

2022-07-29 12:03:23 15308

原创 MongoDB Go Driver BSON类型

Go Driver支持BSON类型表示对Mongo的操作– D: 表示基础BSON文档。此命令或操作按顺序执行。– M: 与D相似,但不保留顺序。表示无序map。– A: 表示BSON数组。– E: 表示单一的子项。举例:bson.D{{ "name", bson.D{{ "$in", bson.A{"Alice", "Bob"} }}}}上面是一个简单的过滤文档,匹配的是 name 是Alice 或 Bob的数据...

2021-10-25 19:06:02 1278

原创 Golang判断map中key是否存在?

if _, ok := exMap[key]; ok { fmt.Println("exMap have this key")}

2021-10-25 18:57:51 304

原创 MongoDB聚合(aggregate)查询去重(distinct)后总数(count)

使用聚合函数,多次分组统计结果,最终将聚合的结果数返回给用户db.teacher.aggregate([ {$match:{"name": "Jone"}}, {$project:{"age": 1}}, {$group:{"_id": "$age"}}, {$group:{"_id": null, "count": {"$sum": 1}}}])假设数据库中名称是Jone的人有多个,以上聚合结果是,数据库中名字是Jone的人,有多少种不同的年龄。例子:名叫Jon

2021-10-25 18:44:56 11659 1

原创 Happy 1024!

Happy holidays(1024) to software engineers!

2021-10-24 12:30:58 147

原创 [工作小计]GIT 删除 commites

git reset --hard HEAD~1orgit reset --hard <sha1-commit-id>

2021-09-27 18:08:36 95

原创 GO-基本数据类型默认值

GO-基本数据类型默认值// 基本数据类型(整型,浮点型,字符串型,布尔型)的默认值package mainimport ( "fmt")func main() { var a int var b float32 var c bool var d string fmt.Printf("整型a的值为%v, 浮点型b的值为%v, 布尔型c的值为%v, 字符串型d的值为%v\n", a, b, c, d) // 整型a的值为0, 浮点型b的值为0, 布

2021-08-15 16:14:43 232

原创 [工作小计]Python-loguru日志插件(推荐贴)

推荐一个好用的python日志插件loguru,上手简单、功能丰富、文档详细,几乎可以满足所有日常开发以及生产环境的使用

2021-08-15 15:27:32 410 1

原创 [工作小计]python多进程默认不能共享全局变量

主进程与子进程是并发执行的,进程之间默认是不能共享全局变量的(子进程不能改变主进程中全局变量的值)。对于普通的全局变量,主进程与子进程是并发执行的,他们不能共享全局变量(子进程不能改变主进程中全局变量的值)如果要共享全局变量需要用(multiprocessing.Value(“d”,10.0),数值)(multiprocessing.Array(“i”,[1,2,3,4,5]),数组)(multiprocessing.Manager().dict(),字典)(multiprocessing.Manage

2021-07-08 14:19:40 380

原创 Python requests中params、data和json区别

简单来说,params是用来发送查询字符串,而data、json是用来发送正文的。这两种参数post方法都可以用,get方法只能发查询字符串,不能发送正文。json 表示使用application/json方式提交请求。接收方request.body的内容为’{“a”: 1, “b”: 2}'的这种形式。data 表示使用application/form-urlencode方式提交请求,接收方request.body的内容为a=1&b=2的这种形式。...

2021-06-21 16:38:46 4969

原创 python3 get进程id并kill进程

os.getpid() # os.getpid()获取当前进程idos.getppid() # os.getppid()获取父进程id# kill processos.kill(os.getpid(), signal.SIGKILL)'''第二个参数常用以下几种:SIGINT 终止进程 中断进程SIGTERM 终止进程 软件终止信号SIGKILL 终止进程 杀死进程SIGALRM 闹钟信号'''...

2021-06-09 15:12:20 784

原创 MongoDB(shardsvr、configsvr、mongos) 默认端口

The following table lists the default TCP ports used by MongoDB:默认端口介绍27017mongod 和 mongos 实例的默认端口,你可以通过 port 或 --port 改变该端口27018设置 --shardsvr 运行变量或在配置文件里设置 clusterRole 为 shardsvr 时的默认端口27019设置 --configsvr 运行变量或在配置文件中将 clusterRole 设置为 c

2021-01-23 19:11:08 2647 1

原创 MongoDB “not master and slaveok=false”

在SECONDARY执行操作出发现错误:“not master and slaveok=false”这是正常的,因为SECONDARY是不允许读写的,如果非要解决,方法如下:SECONDARY> rs.slaveOk();

2021-01-23 18:29:11 1535 1

原创 python中利用pymongo连接mongo集群创建分片collection

python中利用pymongo连接mongo集群声明创建分片collection当搭建了集群做了sharding之后,最好的存储方式是允许db分片并指定collection的分片方式(shard key)。这个操作使用mongodb shell能够很方便的完成,但当我们使用python进行数据导入操作的时候,就必须通过pymongo进行,以下是pymongo允许分片的例子import pymongoconn = pymongo.Connection('127.0.0.1', 27017) db

2021-01-23 18:24:36 2319 9

原创 MongodDB集群设置登录账号密码(增加key-file以供集群内部相互验证身份)

在部署mongodb集群的时候,有些安全性要求比较高的地方,需要启用密码验证的方式,登录mongo集群。下面的方式是在mongodb 3.6版本的基础上,3个节点的集群里设置的。生成集群验证key文件使用openssl生成key文件复制该key文件到每个mongodb节点对应目录在每个节点修改key文件权限为400命令如下:$ cd /home/memdb/mongodb/conf$ openssl rand -base64 741 > /home/mongodb/data/m

2021-01-23 18:10:43 2055 1

原创 跨服务器搭建MongoDB集群应设置--bind_ip:0.0.0.0

在跨服务器搭建mongo集群时应该保持各服务器之间网络连接通畅,并且个服务器上的mongo服务应该设置–bind_ip:0.0.0.0使mongo监听来自其他服务器的连接请求详细搭建过程参考我另一篇博客MongoDB集群(分片、复制)搭建(单一服务器多进程多节点)...

2021-01-23 17:46:47 2461 1

原创 Django setting ALLOWED_HOSTS

django报错:Invalid HTTP_HOST header: ‘xxx.com’. You may need to add u’xxx.com’ to ALLOWED_HOSTS解决办法:修改项目的setting.py配置文件将ALLOWED_HOSTS = []改为ALLOWED_HOSTS = ['xxx.com']再次运行可以成功访问了。setting.py中的ALLOWED_HOSTS是为了限定请求中的host值,以防止黑客构造包来发送请求。只有在列表中的host才能访问

2021-01-10 16:48:50 1692 1

原创 MongoDB中的_id

打开 MongoDB 数据库中的任何一个文档,你会注意到文档中有一个 _id 字段。实际上,ObjectId 或 _id 是每个 MongoDB 文档中都存在的字段。在本篇文章中,我们将探讨它的什么以及为什么它对 MongoDB 数据库很重要。ObjectId 的结构_id 是集合中文档的主键,用于区分文档(记录),_id自动编入索引。默认情况下,_id 字段的类型为 ObjectID,是 MongoDB 的 BSON 类型之一。如果需要,用户还可以将 _id 覆盖为 ObjectID 以外的其他内容

2021-01-10 16:27:36 5047 1

原创 Python 报错 json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes

测试接口时服务器端出现错误:json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line x column y (char z)是后端在处理json对象时会将json对象转换为字典再执行其他逻辑,json属性名必须用双引号包裹,所以单纯的用单引号,结果报错以下是原json{ 'items': [{'datapack_id':111,'revision_id':222},{'datapac

2021-01-10 16:09:12 24946 4

转载 Python判断变量的类型

Python判断变量的类型有两种方法:type() 和 isinstance()type()a = ['xxx', 123]if type(a) is list: print('list数组')else: print('其他类型')isinstance()a = ['xxx', 123]if isinstance(a, list): print('list数组')else: print('其他类型')对于基本的数据类型两个的效果都一样,isins

2020-10-24 11:34:11 5056 1

原创 Django 事务transaction使用及多个装饰器问题

django事务类库:django.db.transactionatomic提供装饰器用法当有多个装饰器时@transaction.atomic必须紧贴函数,如果其他装饰器紧贴函数虽不会报错单函数执行会出现问题例:#正确用法from django.db import transaction@classmethod@transaction.atomicdef func(request): ......#错误用法from django.db import transaction@tr

2020-10-24 11:27:15 1810 1

原创 tqdm使用方法及简单介绍

Tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。使用pip就可以安装。from tqdm import tqdm#range用法for i in tqdm(range(1000)): #do something pass #list用法for char in tqdm(["a", "b", "c", "d"]): #do something p

2020-09-13 10:52:01 1736 1

原创 Python3拼接字符串的多种方法

直接通过(+)操作符拼接>>> 'Hello' + ' ' + 'World' + '!''Hello World!''''使用这种方式进行字符串连接的操作效率低下,因为python中使用 + 拼接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当拼接字符串较多时自然会影响效率。'''通过str.join()方法拼接>>> strlist = ['Hello', ' ', 'World', '!']>>&gt.

2020-09-13 10:45:50 1251

原创 python3使用isinstance、type判断变量的类型

isinstancedef add_key(self,keyname): self.keyname=keyname if isinstance(self.keyname,int) or isinstance(self.keyname,str): self.num.append(self.keyname) return self.num这里就是判断输入的变量是否为整形或者字符串type但是 如果判断一个数是否为l.

2020-09-13 10:32:43 1322

原创 import embed:暂停程序,可人工查看此时程序数据状态

from IPython import embeda = 10b = 20embed(header='First time')c = 30d = 40embed()运行结果如下:Python 3.6.3 |Anaconda, Inc.| (default, Oct 6 2017, 12:04:38) Type 'copyright', 'credits' or 'license' for more informationIPython 6.1.0 -- An enhanced Int

2020-09-13 10:24:16 1230

原创 [工作小记]linux拷贝文件夹命令、python中使用linux命令、Python中replace不起作用的问题

linux拷贝文件夹命令:cp -r dir1 dir2python中使用linux命令import os #在python中使用shell命令result = os.system('ss -ntl | grep 8080')#判断命令是否执行成功,正确返回0

2020-09-13 10:16:50 1207

原创 Tmux快捷指令

Tmux指令是以输入的字符作为判断条件所以大小写、中英字符敏感。系统指令前缀指令描述Ctrl+b?显示快捷键帮助文档Ctrl+bd断开当前会话Ctrl+bD选择要断开的会话Ctrl+bCtrl+z挂起当前会话Ctrl+br强制重载当前会话Ctrl+bs显示会话列表用于选择并切换Ctrl+b:进入命令行模式,此时可直接输入ls等命令Ctrl+b[进入复制模式,按q退出Ctrl+b]粘贴复制模式中复

2020-09-13 10:11:33 141

原创 [工作小记]queryset.felter可以链式查询

queryset.felter后边加各种条件 可以链式查询 举例:queryset = self.model.objects.filter(latest_revision_id__isnull=False).exclude( id__in=dataset_attr_relation_datapack_ids, latest_revision_id__in=dataset_attr_relation_revision_ids)queryset = queryset.filter(cate

2020-08-29 17:06:12 170

原创 [工作小记]Queryset 才可以用value_list、request.GET[‘xxx’] 与 request.GET.get(‘xxx’)区别

Queryset 才可以用value_listQueryset 才可以用value_list list中是object无法使用此方法,queryset是单独的类型虽然使用上 像是元素是object的list。request.GET[‘xxx’] 与 request.GET.get(‘xxx’)区别失败后request.GET[‘xxx’]异常报错,request.GET.get(‘xxx’)返回None。...

2020-08-29 17:01:07 110

原创 Django admin search_fields自定义精确查询

search_fields = (u'gift_rule_id',u'user_id', u'activity_id',)//默认的查询集合def get_queryset(self, request): return super(GiftConfirmAdmin, self).get_queryset(request).all().order_by("-id")//根据关键字进行查询集合def get_search_results(self, request, queryset, sea

2020-08-29 16:51:04 2334

原创 [工作小记]如何在dict中add/append键值对dict.update()、@classmethod修饰符

如何在dict中add/append键值对dict.update()# Dictionary of strings and intswordFreqDic = { "Hello": 56, "at" : 23 , "test" : 43, "this" : 43 } # Adding a new key value pairwordFreqDic.update( {'before' : 23} )#结果test : 43this : .

2020-08-29 16:46:51 473

原创 Django @property用法

举例:from django.db import modelsclass Person(models.Model): first_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) birth_date = models.DateField() def baby_boomer_status(self): "Returns the per.

2020-08-29 16:35:35 2699

原创 Django-model.objects.filter()条件

条件选取querySet的时候,filter表示=,exclude表示!=。querySet.distinct() 去重复__exact 精确等于 like ‘aaa’ __iexact 精确等于 忽略大小写 ilike ‘aaa’__contains 包含 like ‘%aaa%’ __icontains 包含 忽略大小写 ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于icontains。__gt 大于__gte 大于等于__lt 小于__lte 小于

2020-08-29 16:26:20 3725

原创 Python-类型提示-类型注释符号

变量# This is how you declare the type of a variable type in Python 3.6age: int = 1# In Python 3.5 and earlier you can use a type comment instead# (equivalent to the previous definition)age = 1 # type: int# You don't need to initialize a variable .

2020-08-29 16:20:34 1579

原创 Django-admin展示可点击链接(url)

admin.pyclass LawyerAdmin(admin.ModelAdmin): fieldsets = [ ('Name', {'fields': ['last', 'first', 'firm_name', 'firm_url', 'school', 'year_graduated']}), ] list_display = ('last', 'first', 'school', 'year_graduated', 'firm_name', 'fir

2020-08-29 16:10:14 2212

转载 TypeError: Object of type ‘ndarray‘ is not JSON serializable

json不认numpy的arrayimport numpy as npimport jsona=np.asarray([1,2])result={'name':'test','num':a}json.dump(result)TypeError: Object of type ‘ndarray’ is not JSON serializable解决方案:result={'name':'text','num':a.tolist()}

2020-08-29 15:28:00 8339 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除