- 博客(61)
- 收藏
- 关注
原创 基于fastapi sqladmin开发,实现可动态配置admin
2. 支持配置admin显示参数,支持sqladmin原生参数设置,动态加载View,无需重启服务;1. 支持动态创建表、类,属性,唯一约束、外键,索引,关系,无需写代码,快速创建业务对象;3. 支持通过角色控制菜单权限,不同角色的用户操作不同的数据对象;2. 根据README.md配置环境,运行服务。4. 支持二次开发,扩展动态View功能;
2024-05-11 14:28:20
505
1
原创 VMware 创建centos7虚拟机
重启:/user/sbin/nginx -s reload。修改配置:vi /etc/nginx/nginx.conf。启动nginx: /user/sbin/nginx。安装wget:yum -y install wget。安装nginx: yum install nginx。第四步:安装vmware tools。注意复制粘贴时,鼠标不能进入虚拟机。第三步 :启动虚拟机,执行安装。更新系统:yum update。第一步:下载centos镜像。选择下载的iso镜像文件。需要开放端口外部才可以访问。
2023-03-15 14:03:43
382
原创 Fastapi swagger-ui.css 、swagger-ui-bundle.js 无法加载
版本信息: python3.8 fastapi 0.78.0访问 /docs 查看接口文档是发现swagger资源无法加载(可能是npm宕机了)解决:尝试降低fastapi版本并未奏效,于是想下载下资源文件,改为本地静态资源加载 资源下载地址:swagger-ui/dist at master · swagger-api/swagger-ui · GitHub 1. 分别下载 swagger-ui.css 、swagger-ui-bundle.js,放置在本...
2022-05-25 15:03:58
5953
10
原创 fastapi apscheduler: No trigger by the name “interval“ was found
尝试在fastapi 中使用 apscheduler 报错:LookupError: No trigger by the name "interval" was found解决办法:使用实例化的triggerfrom apscheduler.schedulers.background import BackgroundSchedulerfrom apscheduler.triggers import intervalscheduler = BackgroundScheduler()..
2022-04-04 16:36:08
440
原创 SQLAlchemy Async
目录架构安装:Engine:ResultSessionMetaDataTable And ORM反射表插入数据查询数据更新和删除使用流式Async ORM关联对象加载Event 钩子SQL 编译缓存架构版本要求:Cpython +3.7安装:pip install SQLAlchemy安装对应数据库的DBAPI: https://docs.sqlalchemy.org/en/20/dialects/mysq...
2022-04-03 21:52:31
5497
原创 mm wiki 设置开机启动
执行启动配置cat > /etc/systemd/system/mmwiki.service <<EOF[Unit]Description=mmwikiAfter=network.targetWants=network.target[Service]Type=simplePIDFile=/var/run/mmwiki.pidWorkingDirectory=/root/mmwikiExecStart=/root/mmwiki/mm-wiki --conf conf/.
2022-01-24 11:09:09
1370
原创 centos7 mariadb启动失败
问题:mariadb 启动时报错Job for mariadb.service failed because the control process exited with error code解决:修改默认配置:1)/etc/my.cnf 文件,在 [mysqld] 标签下添加init_connect='SET collation_connection = utf8_unicode_ci'init_connect='SET NAMES utf8'characte...
2022-01-24 10:48:14
2557
3
原创 morepath
hello world import morepath# 创建App继承morepath.appclass App(morepath.App):pass# 路由和类绑定@App.path(path='')class Root(object):pass# 为类绑定一个视图,没有指定name参数时默认name=‘’@App.view(model=Root)def hello_world(self, request):retu...
2021-11-10 08:40:14
185
原创 IIS 部署 django+react
django3.0 + python3.8react 16.14.0winserver 2019一:React部署:1. 点击添加网站:2. 创建url重写规则:这里手动配置与提前创建好web.config文件是一样的,手动创建会自动生产web.config文件;一定记得选择307 ,写外网地址二:django部署: 参考靠谱:https://zhuanlan.zhihu.com/p/111822007 若出现本机可以访问,外部无法访问..........
2021-07-13 16:22:31
1049
原创 flask minio ios下载视频无法播放
代码:app.route('/download/<bucket_name>/<file_id>')def download(bucket_name,file_id): params = request.json or request.args response = download_file(bucket_name, file_id, offs
2021-05-27 15:23:17
660
原创 Mongo 异步客户端 Motor 事务
源码位置:ClientSession.with_transactio注意必须主从或者分片集群才能使用事务:分片配置参考文章:https://blog.youkuaiyun.com/weixin_34288121/article/details/92905461最终代码:注意代码里的db_client是MotorDatabase对象,只能是MotorClient对象调用start_session(), 而不是MotorDatabase对象方法一:需要将session传入目标函数内async def d.
2021-05-07 18:14:09
528
原创 python tempfile
应用场景: 程序运行过程中临时数据的保存,不必关系删除文件,调用高级接口自动释放资源基本原理: 在临时目录下创建文件,实现了上下文协议,自动清理快速上手: f = tempfile.TemporaryFile([mode='w+b'[, bufsize=-1[, suffix=''[, prefix='tmp'[, dir=None]]]]]) 该函数返回文件对象可以直接读写。当文件对象被close或者被de...
2021-01-19 20:52:06
197
原创 如何使用 win32com 操作excel 入坑
app打开方式的区别:https://stackoverflow.com/questions/50127959/win32-dispatch-vs-win32-gencache-in-python-what-are-the-pros-and-cons/53833740#53833740?newreg=0e69607c6e364894abde5a7be0fe5e29win32com 文档:http://timgolden.me.uk/pywin32-docs/contents.html使用win3..
2020-12-16 14:51:24
5742
原创 Centos 使用docker 搭建redis集群
三步走:第一步:安装依赖包下载第二步:启动多个容器第三步:创建集群详细步骤:1. 安装依赖包:1. 安装docker:https://blog.youkuaiyun.com/u011936655/article/details/810623432. 下载reids镜像:docker pull redis3. 下载ruby镜像:docker pull ruby 2. ...
2020-05-07 10:52:29
640
1
原创 mongo 常用查询
一: 对比等于: $eq 例如: {'age':{'$eq':20}}不等于: $ne 例如: {'age':{'$ne':20}}大于: $gt 例如: {'age':{'$gt':20}}大于等于: $gte 例如: {'age':{'$gte':20}}在。。里: $in 例如: {'age':{'$in':[20,30]}}不在。。里: $n...
2020-04-24 16:42:40
553
原创 Redis 设计与实现---第十章:事件
文件事件:redis通过套接字与客户端进行连接,文件事件就是服务器对套接字操作对象的抽象,服务器与客户端他通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通讯操作。Reds基于Reactor模式开发了自己的网络事件处理器:这个处理器被称为文件事件处理器(file event handler) 文件事件处理器使用I/O多路复用程序来同时监听多个套接字...
2020-03-21 17:43:15
203
原创 Redis 设计与实现---第九章:数据库持久化
SAVE (服务被阻塞)和 BGSAVE(子进程执行): BGSAVE时,再次执行SAVE或者BGSAVE会被拒绝,因为存在资源竞争,BGREWRITE会被延迟到BGSAVE执行完成后执行,虽然两者都会fork子进程执行,但是为了避免同时大量磁盘IO所以一个一个来。数据加载:Dirty 和lastsave:Redis发服务周期性操作函数serverC...
2020-03-21 16:31:06
188
原创 Redis 设计与实现---第八章:数据库(二)
AOF 和 RDB、主从复制: 执行SAVE或者BGSAVE时,已经过期的键会被抛弃; redis服务器载入时,如果开启了RDB功能,主服务器载入时会判断rdb文件中的键是否已经过期,已过期的不载入,而从服务器会全部加载,但主从同步后又会一致,所以一般来讲,过期键对载入RDB文件的从服务器也不会造成影响 AOF文件的写入,过期键在被删除时会主动向AOF文件写入一条DE...
2020-03-21 11:38:37
123
原创 Redis 设计与实现---第八章:数据库(一)
Redis所有数据库都保存在服务器状态RedisServer结构的db数组中,db的每一个项都是一个redisDb结构,每一个redisDb结构代表一个数据库,启动服务时,根据配置database决定创建数据库的个数select 命令的实现: 在服务器内部,客户端状态redisClient结构的db属性记录了客户端当前的目标数据库,这个属性是一个指向redisDb结构的指针...
2020-03-21 10:30:09
172
原创 Redis 设计与实现---第七章:对象
Redis并没有直接使用前面讲到的基本数据结构,而是将他们封装成基本对象使用,如字符串对象,列表对象,哈希对象,集合对象和有序集合对象。使用对象的好处: 1. 根据对象判断是否可以执行给定的命令; 2. 可以针对使用场景为对象设置多种不同的数据结构实现,从而提升效率 3. Redis对象系统实现了基于引用计数的内存回收机制,基于引用计数实现了对象的...
2020-03-20 22:51:19
144
原创 Redis 设计与实现---第六章:压缩列表
压缩列表是列表键和hash键的底层实现原理之一(列表还可以使用链表,hash还可以使用字典),当。当。当。当键的个数不多,或者每个对应的值要么是小整数,要么是比较短的字符串时。压缩列表时redis为了节约内存而开发的,是由一系列特殊的编码的连续内存块组成的顺序型数据结构,一个压缩列表可以包含多个节点(entry),每个节点保存一个字节数组或者一个整数值由于prevous-en...
2020-03-20 16:37:59
169
原创 Redis 设计与实现---第五章:整数集合
整数集合是集合键的底层实现之一,当一个集合只包含整数值元素个数,并且这个集合的元素个数数量不多时,Redis采用整数集,也就是说每个数据类型可能会有多种数据实现,具体选用哪种是根据情况变化的。整数集合的实现: 包含的类型:int16_t ,int32_t,int64_t,元素不重复升级原则: 向上整体升级,不存在降级。时间复杂度为O(N) 例...
2020-03-20 16:07:29
208
原创 Redis 设计与实现---第四章:跳跃表
跳跃表,redis有序集合键的底层实现之一,一般来说效率媲美平衡树,但实现更简单,跳跃表支持平均O(logN),最坏O(N)复杂度的节点查找,还可以提供顺序性操作,通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。redis 仅在有序集合华为集群节点的内部数据中使用了跳跃表...
2020-03-20 15:51:36
119
原创 Redis 设计与实现---第三章:字典
Redis数据库构建k-v键值对时(任何类型),就是通过字典实现,也基本的hash键底层实现之一(当hash类型中键值比较多,或者键值元素比较长时)但是键值多少以及长短的具体分界线是多少呢??字典的实现:Redis的字典使用hash表作为底层实现,一个hash表里面包含多个hash表节点,而每个hash表节点剧保存了字典中的一个键值对 链地址法解决冲突,就是当两个...
2020-03-20 15:35:40
156
原创 Redis 设计与实现---第二章:链表
C语言中并无链表结构,redis构建了自己的链表,链表在redis中使用非常广泛: 如列表键的实现,当列表键包含元素较少或者元素都比较短时使用压缩列表,反之键较多或者较长时使用链表。 发布订阅,慢查询,监视器等都使用了链表; redis服务器本身还是用链表来保存多个客户端的状态信息,以及构建客户端输出缓冲区(output buffer)...
2020-03-20 14:23:17
144
原创 Redis 设计与实现---第一章:简单动态字符串
字符串对象: redis没有直接使用C语言传统字符串,而是自己封装了一种叫做:简单动态字符串(simple dynamic string,SDS)抽象类型,就是为了实现高效修改 C语言的字符串:是以空字符串结尾的字符数组redis SDS长这样:两个字符串差异对比: SDS依旧遵循空格结尾,这样很多方法可以复用,不必重复造轮子,字节数...
2020-03-20 11:41:09
137
原创 tornado PeriodicCallback 实现文件更新监听功能
import osfrom tornado.ioloop import PeriodicCallbackwatch = {}# 通过读取文件的更新时间def check_file(modify_times, path) -> None: print('监听更新') try: modified = os.stat(path).st_mtime ...
2020-03-11 16:32:22
2412
原创 tornado centos下使用 supervisor
一、安装:1. pip install supervisor 或者 yum install supervisor -y2. 创建文件目录:mkdir /etc/supervisor/conf.d -p (路径一)3. 进入etc目录:cd /etc4. 生成配置文件:echo_supervisor_conf > supervisord.conf二、配置:5....
2020-03-04 12:12:35
220
原创 CentOs 安装FastDfs Nginx 配合nginx image_filter缩略图
服务器版本:CentOS Linux release 7.7.1908第一步:下载所需安装包: 链接:https://pan.baidu.com/s/1oNPxkth8cioA6RBMqLhgsg 提取码:z55f 将安装压缩包都解压到 /usr/local 下: tar -zxvf libfastcommonV1.0.7...
2020-02-28 21:10:44
1141
原创 PyQt5 及qtdesigner 实现window Notepad 记事本功能
代码仓库:git@github.com:maxiaojunwolf/notepad.git软件截图:
2020-01-04 21:48:20
755
原创 canvas 实现图片拖拽,缩放功能
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>canvas图片实现拖拽缩放功能</title> <style> body,div{ margin:0; ...
2019-10-20 11:17:21
3441
2
原创 python 实现链表数据结构
class Node(object): """节点类""" def __init__(self, value): self.value = value self.next = Noneclass SingleLine(object): """单链表""" def __init__(self): self.v...
2019-08-01 19:45:00
175
原创 python 实现队列数据结构
class Queues(object): def __init__(self): """初始化""" self._queue = [] def enqueue(self, item): """尾部添加元素""" self._queue.append(item) def dequeue(self): ...
2019-08-01 19:39:43
166
原创 python 使用列表实现栈数据结构
class Stack(object): def __init__(self): self.items = [] def push(self, item): self.items.append(item) def pop(self): try: return self.items.pop() ...
2019-08-01 19:38:26
270
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人