- 博客(13)
- 资源 (3)
- 收藏
- 关注
原创 Flask中使用flask-sqlalchemy时急切加载(预加载,类似django中的select_related和prefetch_related方法)减少sql对其优化
回想一下,我们之前演示了延迟加载操作,当我们访问 a 的User.addresses集合User并发出 SQL 时。如果你想减少查询的数量(在很多情况下是显着的),我们可以对查询操作应用一个急切的负载。这三个通常通过称为查询选项的函数调用,这些函数Query通过该方法为我们希望如何加载各种属性提供额外的说明Query.options()。加载一组对象及其相关集合的一个不错的选择是selectinload()选项,它发出第二个 SELECT 语句,完全加载与刚刚加载的结果关联的集合。
2022-09-02 14:58:39
494
原创 后端开发解决数据库表锁的问题
Navicat 或其他类似工具中执行以下代码:下面展示一些 内联代码片。SHOW PROCESSLIST根据查询的信息(观察信息中的ip 等信息是否符合)var foo = 'bar';
2022-05-17 09:35:36
207
原创 DRF中關於viewset中create()和serializers中的create及perform_create
drf中視圖中的create方法和序列化器中的create方法的關係
2022-04-26 12:20:19
941
原创 drf文件上傳下載示例
model.pyfrom django.db import models# Create your models here.class FileModel(models.Model): file_name = models.CharField(max_length=50, verbose_name='桶名', help_text='桶名') file_path = models.CharField(max_length=200, default='', verbose_name='文
2022-04-21 16:51:10
886
原创 minio的搭建一些踩坑及使用docker多机集群部署minio
最近在调研做文件存储系统对于minio的搭建一些踩坑及使用docker多机集群部署minio代码粘上第一种多机集群部署:docker run -d --name minio --restart=always --net=host -e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=admin123456" -v /data/minio2/data1:/data1 -v /data/minio2/data2:/data2 -v /home/config:
2021-10-28 13:29:06
389
原创 关于使用drf-yasg中的swagger实现能够上传文件的测试功能
django更改存储方式,实现连接sftp上传文件到其他服务器下面只是简单地实现方法(demo),具体内容视自己需求具体使用关于使用drf-yasg中的swagger实现能够上传文件的测试功能需要在视图文件中使用解析器,为了更改上传文件的头部信息,重点在’parser_classes’ 详情,可以参考drf-yasg的git中issues,有相关内容,安装django-storages: (django-storages封装了对python连接sftp的连接)pip install djang
2021-09-18 17:00:13
760
原创 DRF中配置drf-yasg来使用swagger
DRF中配置drf-yasg来使用swagger简单使用,具体配置根据项目需求,安装drf-yasg并注册到app省略在settings.py中做如下配置# -----------------------------------------swagger配置-------------------------------------------SWAGGER_SETTINGS = { 'LOGIN_URL': '/api-auth/login', 'LOGOUT_URL': '/api
2021-08-18 21:04:39
1074
原创 2021-07-29
result = serializers.SerializerMethodField()def get_result(self, row): pass#**使用此方法获取关联关系的其他字段时,会每次都查询,造成查询语句过多,使用**def to_representation(self, instance): data = super().to_representation(instance) data['result'] = result.name if result.name else ''
2021-07-29 16:42:09
87
原创 2021-07-15
在使用django时,重新迁移数据库表时,出现1146大部分解决办法是删除迁移表的记录和迁移文件,但是在操作之后还是会报1146,在django3.0.8碰到,注释掉model.py的所有使用到的表的逻辑代码在迁移即可成功,在提示1050报错(django中在model层删除表/修改表中字段的类型,出现问题,删除数据库中的表,去迁移表删除对应app的迁移记录,去model修改,重新迁移,将逻辑中所有相关的表的代码注释掉,否则报11461050报错:python manage.py migrate my
2021-07-15 16:39:08
77
原创 2021-07-10
在使用python中的日志模块时会出现日志文件里的记录成线性增加(第一条记录写入一条,第二条记录写入两条…一次增加的情况)在使用python中编写win服务的模块及ThreadingTCPServer模块时遇到上述情况在logger方法中增加logger.handlers.clear()即可解决线性增加问题,部分代码如下:def _getLogger(): logger = logging.getLogger('[TCP]') # 添加语句防止重复写入日志内容 logger.h
2021-07-10 13:28:19
141
原创 2021-06-26
python中关于logging模块的使用,为代码增加写入日志(工作开发必备)代码如下:def getLogger(): # 获取一个记录器 logger = logging.getLogger('test') # 创建文件夹名称为log的文件夹 dirpath = path.dirname(__file__) + '\\log\\' # 为logger指定handler让他知道怎么处理日志,输出到哪里,日志的文件名字为test.log handler =
2021-06-26 16:13:56
95
原创 2021-06-22
Django查询优化–prefetch_relatedprefetch_related使用案例class A(BaseModel): bu = models.ForeignKey(Bu, on_delete=models.PROTECT, related_name='bu_tpmbase', db_constraint=False, verbose_name='BU', help_text='BU')....class B(models.Model): tpm_base=models.Forei
2021-06-22 13:42:54
83
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人