首页
Node
PHP
Git
Python
前端
搜索
登录
搜索
一行虎
累计撰写
24
篇文章
累计收到
1
条评论
首页
栏目
首页
Node
PHP
Git
Python
前端
自定义幻灯片
最新文章
2023-11-23
快速上手 Python 框架 FastAPI
FastAPI 是一种现代,快速(高性能)的 Web 框架,基于标准Python 类型提示使用 Python 3.6+ 构建 API。 FastAPI 文档 官方文档:https://fastapi.tiangolo.com/ FastAPI 安装 FastAPI 推荐使用 uvicorn 来运行服务,Uvicorn 是基于 uvloop 和 httptools 构建的闪电般快速的 ASGI 服务器。 在终端中执行以下命令: pip install fastapi pip install uvicorn FastAPI 实践 创建一个 .py 文件,并写以下代码 from typing import Optional from fastapi import FastAPI app = FastAPI() @app.get("/api/v1/hw") def read_root(): return {"Hello": "World"} @app.get("api/v1/items/{item_id}") def read_item(item_id: int): return {"item_id": item_id}
2023年-11月-23日
97 阅读
0 评论
Python
2023-11-12
Python抽取分数超过60的学生
print('1111') 示例数据 students = [ {'name': 'Alice', 'score': 78}, {'name': 'Bob', 'score': 56}, {'name': 'Charlie', 'score': 84}, {'name': 'Dave', 'score': 92} ] 这个例子中,filter_students_by_score 函数通过列表推导式(list comprehension)筛选出那些分数超过60的学生记录。 抽取分数超过60的学生 def filter_students_by_score(data): return [student for student in data if student['score'] > 60] filtered_students = filter_students_by_score(students) 打印结果 for student in filtered_students: print(student)
2023年-11月-12日
156 阅读
0 评论
Python
2023-11-12
Python-生成固定时间且间隔为1分随机测试数据Json实例
This is a sample Python script. import random from datetime import datetime, timedelta import json if __name__ == '__main__': print_hi('PyCharm') #### See PyCharm help at https://www.jetbrains.com/help/pycharm/ ### 定义开始和结束时间 start_time = datetime(2024, 9, 9, 14, 00) # 2024年3月1日 8:30 end_time = datetime(2024, 9, 9, 14, 30) # 2024年3月1日 9:30 ### 时间间隔设置为1分 interval = timedelta(minutes=1) ### 生成时间列表 time_list = [start_time + i * interval for i in range((end_time - start_time) // interval)] print(f"随机产生温度参数:") for ind, time in enumerate(time_list): jsonList = { 'batteryValue': "100", "recordDate": f'{time}', "longitude": "114.06455", "latitude": "22.54846", "sensorList": [ { "sensorId": 1, "sensorType": "temperature", # 随机生成2.5-7.0之间的小数,保留两位小数 f"{random_number:.2f}" "sensorValue": f"{random.uniform(2.5, 7.0):.2f}" } ], } end = '' if ind < len(time_list) - 1: print(json.dumps(jsonList) + ',') else: print(json.dumps(jsonList)) 生成格式: {"batteryValue": "100", "recordDate": "2024-09-09 14:00:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "4.50"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:01:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "3.92"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:02:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "2.96"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:03:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "3.18"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:04:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "4.17"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:05:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "3.14"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:06:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "3.88"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:07:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "3.12"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:08:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "2.77"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:09:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "4.34"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:10:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "2.78"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:11:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "4.88"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:12:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "2.79"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:13:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "3.99"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:14:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "4.51"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:15:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "6.85"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:16:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "6.66"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:17:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "3.87"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:18:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "5.65"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:19:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "3.67"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:20:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "6.75"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:21:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "5.25"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:22:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "5.13"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:23:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "3.13"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:24:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "5.72"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:25:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "5.15"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:26:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "4.02"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:27:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "2.90"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:28:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "2.63"}]}, {"batteryValue": "100", "recordDate": "2024-09-09 14:29:00", "longitude": "114.06455", "latitude": "22.54846", "sensorList": [{"sensorId": 1, "sensorType": "temperature", "sensorValue": "2.94"}]}
2023年-11月-12日
133 阅读
0 评论
Python
2023-11-12
link和@import在CSS引入方式上关键区别
本质区别: link:link是HTML标签,不仅可以加载CSS文件,还可以定义RSS、rel连接属性等。 @import:@import是CSS提供的语法规则,只能用于导入样式表,不能定义其他HTML属性。 加载顺序: link:在页面加载时,link引入的CSS会同时被加载。 @import:@import引入的CSS会在页面加载完毕后才加载,这可能导致页面在加载过程中出现样式未完全应用的情况,影响用户体验 兼容性: link:作为HTML元素,link不存在兼容性问题,所有浏览器都支持。 @import:@import是CSS2.1的语法,仅在IE5及更高版本中支持,较老的浏览器可能无法识别。 DOM可控性: link:支持使用JavaScript操作DOM,可以通过JavaScript动态改变样式。 @import:由于@import是基于CSS的语法,无法通过DOM方法插入样式。 权重和性能: link:引入的样式权重高于@import引入的样式。 性能方面:link方式可以同时加载CSS,而@import在页面加载完毕后才加载,可能会影响页面加载速度。 综上所述,link和@import在本质、加载顺序、兼容性、DOM可控性、权重和性能等方面都有显著区别,开发者应根据具体需求选择合适的方法。
2023年-11月-12日
121 阅读
0 评论
CSS
2023-11-11
git基本操作
初始化仓库 git init: 初始化一个新的 Git 仓库。 git init --bare: 初始化一个裸仓库(通常用于远程仓库)。 配置用户信息 git config --global user.name "Your Name":设置全局用户名。 git config --global user.email "your.email@example.com":设置全局用户邮箱。 分支管理 git branch:列出所有本地分支。 git branch :创建新分支。 git checkout :切换到指定分支。 git checkout -b :新建分支并切换到该分支。 git merge :合并指定分支到当前分支。 git branch -d :删除分支branch1。 远程仓库 git remote add origin :添加远程仓库。 git fetch:获取远程仓库的变化。 git pull:获取远程仓库的变化并合并到本地。 git pull :拉取远程仓库的指定分支。 git push:推送本地的提交到远程仓库。 git push :本地分支推送到远程(远程无该分支会创建)。 其他命令 git log:查看提交历史。 git diff:显示未暂存的差异。 git stash:暂存当前工作目录的更改以便稍后恢复。 git clone :克隆一个远程仓库到本地。 查看状态 git status:显示工作目录和暂存区的状态。 添加文件 git add :将单个文件添加到暂存区。 git add.:将所有改动添加到暂存区。 忽略文件 touch .gitignore: 创建一个 .gitignore 文件来指定不需要跟踪的文件模式。 提交更改 git commit -m "Commit message": 提交暂存区的更改到仓库,并附带提交信息。 常用 git commit -m "提交信息":提交已暂存的更改。 git commit -a -m "提交信息":自动将所有已跟踪文件的更改添加到暂存区,并提交(不包括未跟踪的新文件)。 git commit --amend -m "新的提交信息":可以修改最近一次提交的信息或者添加新的更改到最近一次提交中。 (commit作用于本地仓库,push将本地仓库的提交历史推送到远程仓库)
2023年-11月-11日
150 阅读
0 评论
Git
2022-9-5
csdn不登录复制代码2种方法
按F12,在console里执行下面代码 第一种: $("#content_views pre").css("user-select","text"); $("#content_views pre code").css("user-select","text"); 第二种: document.body.contentEditable='true';document.designMode='on'; void 0 亲测可用,会不会打我....
2022年-9月-5日
2853 阅读
0 评论
其他
2022-8-11
Cron表达式验证
近期做顺丰医药仓库数据抽取,使用airflow定时器 Cron表达式生成利器: https://www.bejson.com/othertools/cron/ 常用Cron表达式: (1)0 0 2 1 * ? 表示在每月的1日的凌晨2点调整任务 (2)0 15 10 ? * MON-FRI 表示周一到周五每天上午10:15执行作业 (3)0 15 10 ? 6L 2002-2006 表示2002-2006年的每个月的最后一个星期五上午10:15执行作 (4)0 0 10,14,16 * * ? 每天上午10点,下午2点,4点 (5)0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时 (6)0 0 12 ? * WED 表示每个星期三中午12点 (7)0 0 12 * * ? 每天中午12点触发 (8)0 15 10 ? * * 每天上午10:15触发 (9)0 15 10 * * ? 每天上午10:15触发 (10)0 15 10 * * ? 每天上午10:15触发 (11)0 15 10 * * ? 2005 2005年的每天上午10:15触发 (12)0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发 (13)0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发 (14)0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 (15)0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发 (16)0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发 (17)0 15 10 ? * MON-FRI 周一至周五的上午10:15触发 (18)0 15 10 15 * ? 每月15日上午10:15触发 (19)0 15 10 L * ? 每月最后一日的上午10:15触发 (20)0 15 10 ? * 6L 每月的最后一个星期五上午10:15触发 (21)0 15 10 ? * 6L 2002-2005 2002年至2005年的每月的最后一个星期五上午10:15触发 (22)0 15 10 ? * 6#3 每月的第三个星期五上午10:15触发
2022年-8月-11日
3657 阅读
0 评论
其他
2022-7-31
ClickHouse 学习笔记
docker 部署clickHouse 1.服务器部署 命令下载包 docker pull yandex/clickhouse-server 服务端 docker pull yandex/clickhouse-client 客户端 2.启动服务, 端口未做修改,外部暴露 8123端口 docker run -d --name ck-server --ulimit nofile=262144:262144 -p 8123:8123 -p 9000:9000 -p 9009:9009 yandex/clickhouse-server 启动容器 ck-server 服务。 3、进入命令操作 --查询 default 库里的表 select name from system.tables where database='default' --建表 (直接复制) create table aaa( id String, name String ) ENGINE = MergeTree PARTITION BY name ORDER BY (name ) SETTINGS index_granularity = 8192 --插入 insert into `default`.aaa (id,name) values (1,'test') --查询 select * from aaa --修改 ALTER table `default`.bsc_transfer update name = 2 where id = 1 --删除表 DROP TABLE IF EXISTS aaa --删除数据 alter table `default`.aaa delete where 1=1 3、进入Clickhouse容器 docker exec -it 容器id /bin/bash 容器id 这里是:ck-server 如: docker exec -it ck-server /bin/bash 添加用户: vim /etc/clickhouse-server/users.xml ps: 需要安装vim apt-get update apt-get install vim 初次改密码: 找到标签 users (这里是默认default用户的密码是空的) <default> <password></password> </default> 增加新用户在 后面追加 (用户 root 密码 123456) <root> <password></password> <networks incl="networks" replace="replace"> <ip>::/0</ip> </networks> <profile>default</profile> <quota>default</quota> </root> 最后 重启服务 docker restart ck-server 没出意外,你就可以用工具链接成功,如下图: 4、数据库同步 在 ClickHouse 中启用物化引擎 SET allow_experimental_database_materialized_postgresql=1 创建要复制的新数据库并定义初始 schema CREATE DATABASE test ENGINE = MaterializedPostgreSQL('localhost:5432', 'postgres', 'user', 'pwd') SETTINGS materialized_postgresql_schema_list = 'public,pub2'; test:数据库 user:pgSql用户名 pwd: pgSQ数据库密码 materialized_postgresql_schema_list: 监听 schema 名称 PS:抽离数据默认使用 schema。 设置 PostgreSQL 数据库表的逗号分隔列表,将通过 MaterializedPostgreSQL 数据库引擎进行复制。 materialized_postgresql_schema SETTINGS materialized_postgresql_schema = 'onlyOne'; 如多个schema使用: materialized_postgresql_schema_list SETTINGS materialized_postgresql_schema_list = 'public,pub2,pub3'; 切记!!! 搞定,打完收工。没有意外就成功!不成功是多么不小心。。。。 clickhouse相关知识站点: clickhouse中文官方文档:什么是ClickHouse? | ClickHouse文档
2022年-7月-31日
3065 阅读
0 评论
数据库
2022-7-21
nvarchar和varchar的区别
1、varchar是非Unicode可变长度类型,nvarchar是Unicode可变长度类型。 2、varchar和nvarchar的最大长度不一样,nvarchar的长度设置必须为1和4000之间。varchar的长度设置必须是1和8000之间。 3、varchar能存储的字节数就是他的长度。nvarchar能存储的字节数是它长度的2倍。 区别: ① 从存储方式上,nvarchar是按字符存储的,varchar是按字节存储的。 ② 从存储量来看,varchar是比较省空间的,因为存储的大小就是字节的实际长度,而nvarchar是双字节存储。 ③ 使用上,如果存储内容是英文字符而没有汉字或者其他语言,建议使用的是varchar,含有汉字的使用nvarchar,因为nvarchar使用的Unicode编码,统一的编码,会减少乱码出现的几率。 总结: 现在的设备,存储空间的大小已经不受限制。无论是语言的范围,和存储空间的范围,nvarchar都占有很大的优势。 做项目的数据库建议选nvarchar。
2022年-7月-21日
2049 阅读
0 评论
数据库
2022-7-21
postgresql数据库查询锁表信息及解锁
一、查询PG_STAT_ACTIVITY的信息 select T.PID, T.STATE, T.QUERY, T.WAIT_EVENT_TYPE, T.WAIT_EVENT, T.QUERY_START from PG_STAT_ACTIVITY T where T.DATNAME = '数据库名'; 二、查询PG_STAT_ACTIVITY中的死锁信息 select T.PID, T.STATE, T.QUERY, T.WAIT_EVENT_TYPE, T.WAIT_EVENT, T.QUERY_START from PG_STAT_ACTIVITY T where T.DATNAME = '数据库名' and T.WAIT_EVENT_TYPE = 'Lock'; 三、通过pid解锁死锁信息 select PG_CANCEL_BACKEND('pid'); PS:如果以上操作都不行。那就重启数据库吧(^_^)
2022年-7月-21日
1960 阅读
0 评论
数据库
1
2
3