在 Python 中使用 Ollama API
文章目录
- 一、环境准备
- 二、使用方法
- 1.简单对话
- 2.流式响应
- 3.结构化输出
- 4.自定义客户端
- 4.1 同步客户端
- 4.2 异步客户端
- 4.3 同步 & 异步客户端不同调用次数耗时对比测试
- 三、常用的ollama API 接口
- 聊天
- 生成
- 本地模型列表
- 显示模型信息
- 创建模型
- 复制模型
- 删除模型
- 拉取模型
- 推送模型
- 生成嵌入
- 进程
- 四、遇到问题与解决
- 五、推荐的代码库
包含内容:环境配置,简单的聊天对话,使用流式响应处理大数据,以及本地进行模型创建,复制与删除。
一、环境准备
在开始使用 Python 与 Ollama API 交互之前,请确保您的开发环境满足以下条件:
- Python: 安装 Python 3.8 或更高版本。
- pip: 确保已安装 pip,Python 的包管理工具。
- ollama 库: 用于更方便地与 Ollama API 交互。
ollama 库的安装命令如下
pip install ollama -i https://pypi.tuna.tsinghua.edu.cn/simple
二、使用方法
1.简单对话
from ollama import chat
from ollama import ChatResponseresponse: ChatResponse = chat(model='qwen05b', messages=[ #model是本地已经有的模型{'role': 'user','content': '为什么天空是蓝色的?',},
])
print(response['message']['content'])print(response.message.content)
注意:这里的model 是本地已经有的模型,可以通过ollama list 查询。
$ ollama list
NAME ID SIZE MODIFIED
Mario:latest 71bdccf8ca4b 407 MB 20 hours ago
qwen05b:latest 579ca029b3b3 407 MB 23 hours ago
deepseek-r1:1.5b a42b25d8c10a 1.1 GB 41 hours ago
mymodel:latest 3c4ac1ac3829 355 MB 42 hours ago
运行结果如下:
$ python chatOllama.py
首先,我们来了解一下什么是光谱。在太阳系中,我们可以看到许多不同的颜色和亮度。但是,当光线经过大气层时,它们会受到各种因素的影响而改变其传播方式和速度。其中一些原因是由于地球磁场作用所引起的电磁散射现象,而其他的是因为宇宙空间的温度、密度等物理性质。
现在让我们来分析为什么天空是蓝色的。首先,我们注意到,在我们的视网膜中,光线穿过眼睛时会反射到大脑中并被传输到神经元中进行处理。当光线到达这些神经元时,它们会被放大成可见光的颜色,并在大脑中转化为不同颜色。
因此,当我们看到太阳时,它的表面会产生一个非常明亮和强烈的可见光谱,这意味着在我们的眼睛内,蓝色的波长更容易穿透我们的视网膜并被传输到大脑内部。这也就解释了为什么天空看起来是蓝色的。而当光线穿过大气层时,这些不同颜色的光线会在大气中散射,从而使得我们看到的颜色变得更加混合和复杂。
总之,天空之所以呈现为蓝色的原因是在我们的眼睛中的神经元对不同波长的光子产生响应的结果,并且这种现象在我们的认知学说中也被称为“视色效应”。
回答上面的问题。
首先,我们来了解一下什么是光谱。在太阳系中,我们可以看到许多不同的颜色和亮度。但是,当光线经过大气层时,它们会受到各种因素的影响而改变其传播方式和速度。其中一些原因是由于地球磁场作用所引起的电磁散射现象,而其他的是因为宇宙空间的温度、密度等物理性质。
现在让我们来分析为什么天空是蓝色的。首先,我们注意到,在我们的视网膜中,光线穿过眼睛时会反射到大脑中并被传输到神经元中进行处理。当光线到达这些神经元时,它们会被放大成可见光的颜色,并在大脑中转化为不同颜色。
因此,当我们看到太阳时,它的表面会产生一个非常明亮和强烈的可见光谱,这意味着在我们的眼睛内,蓝色的波长更容易穿透我们的视网膜并被传输到大脑内部。这也就解释了为什么天空看起来是蓝色的。而当光线穿过大气层时,这些不同颜色的光线会在大气中散射,从而使得我们看到的颜色变得更加混合和复杂。
总之,天空之所以呈现为蓝色的原因是在我们的眼睛中的神经元对不同波长的光子产生响应的结果,并且这种现象在我们的认知学说中也被称为“视色效应”。
2.流式响应
流式响应输出相对于非流式响应,输出速度更快。
通过设置 stream=True 启用响应流,使函数调用返回一个 Python 生成器,其中每个部分都是流中的一个对象。
代码如下:
from ollama import chatstream = chat(model='qwen05b',messages=[{'role': 'user', 'content': '为什么天空是蓝色的?'}],stream=True, # 关键点
)for chunk in stream:print(chunk['message']['content'], end='', flush=True)
输入结果如下
$ python chatOllamaStream.py
答案:因为太阳光与空气中的分子碰撞时发生散射,光线被折射。太阳光中的一部分光线以一定的速度经过大气层后,一部分光线由于折射而偏折。
解析:阳光在穿过不同透明介质时会发生折射和反射现象,不同的物质吸收、反射的光也不相同;我们能看到远处的物体,是因为它们发出的光从空气射入水中时,在水面上发生了折射。
【点评】太阳光穿过大气层发生折射或散射是本册物理知识中重要的基本知识点。要了解这一现象出现的原因,并且知道不同物质吸收、反射和散射的光线不一样。在学习这一问题时,我们要先理解光在真空中不能传播;然后通过眼睛将阳光分散为各种颜色后形成的视觉来思考。
关键点:光的折射(deepseek)
3.结构化输出
结构化输出的优势在于
(1)便于处理,机器可以轻松提取特定字段,如 description 或 activity ,而无需 NLP 解析普通文本。
(2)提高可控性,结构化格式让开发者可以精确控制模型输出,避免冗长或不可预测的回答。
(3)便于存储与分析,结构化数据更适合存储到数据库中,方便查询和分析。
示例代码如下
from pydantic import BaseModel, Field
from ollama import chat
import json
'''
class CountryInfo(BaseModel):capital: str = Field(..., alias="首都")number: str = Field(..., alias="人口")area: str = Field(..., alias="占地面积")
'''
class CountryInfo(BaseModel):capital: str = Field(..., alias="capital")number: str = Field(..., alias="population")area: str = Field(..., alias="capital占地面积") response = chat(model='qwen05b',messages=[{'role': 'user','content': "请介绍美国的首都、人口、占地面积信息,并以 JSON 格式返回。"}],format="json", options={'temperature': 0},
)response_content = response["message"]["content"]if not response_content:raise ValueError("Ollama 返回的 JSON 为空")json_response = json.loads(response_content)
print(json_response)friends_response = CountryInfo.model_validate(json_response)
print(friends_response)
输出结果如下
python chatOllamaStruct.py
{'capital': '华盛顿', 'population': '331,449,281', 'land_area': '9,833,517 km²'}
Traceback (most recent call last):File "/home/topplus/CodePython/chatOllamaStruct.py", line 35, in <module>friends_response = CountryInfo.model_validate(json_response)File "/home/topplus/anaconda3/envs/deepseek/lib/python3.10/site-packages/pydantic/main.py", line 627, in model_validatereturn cls.__pydantic_validator__.validate_python(
pydantic_core._pydantic_core.ValidationError: 3 validation errors for CountryInfo
首都Field required [type=missing, input_value={'capital': '华盛顿', ...area': '9,833,517 km²'}, input_type=dict]For further information visit https://errors.pydantic.dev/2.10/v/missing
人口Field required [type=missing, input_value={'capital': '华盛顿', ...area': '9,833,517 km²'}, input_type=dict]For further information visit https://errors.pydantic.dev/2.10/v/missing
占地面积Field required [type=missing, input_value={'capital': '华盛顿', ...area': '9,833,517 km²'}, input_type=dict]For further information visit https://errors.pydantic.dev/2.10/v/missing
4.自定义客户端
可以通过通过 ollama 实例化 Client 或 AsyncClient 来创建自定义客户端。
可以使用以下字段创建自定义客户端:
host: 要连接的 Ollama 主机timeout: 请求超时时间
所有关键字参数参见httpx.Client.
4.1 同步客户端
同步客户端 (Client) 意味着当你调用 client.chat() 方法时,程序会等待该请求完成并返回结果后才会继续执行后续代码。这种方式更直观、简单,适合于编写流程较为线性、不需要处理大量并发任务的应用。
示例代码如下
from ollama import Client
client = Client(host='http://localhost:11434',headers={'x-some-header': 'some-value'}
)
response = client.chat(model='qwen05b', messages=[{'role': 'user','content': '为什么天空是蓝色的?',},
])
print(response)
输出结果如下
$ python chatOllamaClient.py
model='qwen05b' created_at='2025-02-13T06:04:33.229725639Z' done=True done_reason='stop' total_duration=5616403708 load_duration=1314575199 prompt_eval_count=14 prompt_eval_duration=93000000 eval_count=232 eval_duration=4207000000 message=Message(role='assistant', content='天空之所以呈现出蓝色是因为大气中的水汽分子所散射出来的光波使得我们看到的颜色看起来更像蓝色。当太阳光照射到空气时,其中有些光线被吸收了,但其他光线仍然可以穿过大气层,并通过地球表面传播到地球上。\n首先,当我们看到云层和雾气时,这会反射来自阳光的红、橙和黄色光波,这些光线在我们的视网膜中形成彩色图案。其次,在太阳到达地球之前,蓝色的光被散射到了地面上。这是因为大气分子吸收了光子并将其转化为能量。\n最后,当太阳通过大气层后,它会产生一些低能见度的光线,这会使大气中的水汽凝结成雾气和云,并反射红色、橙色和黄色的光波。这些反射光与我们眼中的蓝色光相遇,使我们的视野看起来更加平静,颜色也更为柔和。\n综上所述,天空之所以呈现出蓝色是因为它被吸收了红、橙和黄色光波,并将它们反射回大气层中。这种现象称为散射效应,所以我们的视线变得更加清晰。', images=None, tool_calls=None)
4.2 异步客户端
异步客户端 (AsyncClient)对于需要高效率处理 I/O 操作(如网络请求)或希望同时执行多个任务的应用来说非常有用。通过await关键字,可以暂停该函数的执行直到 AsyncClient().chat() 请求完成,但在此期间不会阻塞其他操作。
没有安装nest_asyncio 的需要先进行安装,命令为
pip install nest_asyncio -i https://pypi.tuna.tsinghua.edu.cn/simple
示例代码如下
import asyncio
from ollama import AsyncClient
import nest_asyncionest_asyncio.apply()async def chat():message = {'role': 'user', 'content': '为什么天空是蓝色的?'}response = await AsyncClient().chat(model='qwen05b', messages=[message])print(response)asyncio.run(chat())
输出结果如下
$ python chatOllamaAsyncClient.py
model='qwen05b' created_at='2025-02-13T06:08:26.315079888Z' done=True done_reason='stop' total_duration=275805641 load_duration=26063201 prompt_eval_count=14 prompt_eval_duration=30000000 eval_count=11 eval_duration=218000000 message=Message(role='assistant', content='答案:天是蓝白色的,不是水。', images=None, tool_calls=None)
设置 stream=True 修改函数以返回 Python 异步生成器:
import asyncio
from ollama import AsyncClient
import nest_asyncionest_asyncio.apply()
async def chat():message = {'role': 'user', 'content': '为什么天空是蓝色的?'}async for part in await AsyncClient().chat(model='qwen05b', messages=[message], stream=True):print(part['message']['content'], end='', flush=True)asyncio.run(chat())
输出结果如下
$ python chatOllamaAsyncClientStream.py
答案:由于大气层中云、雨、雪等对光的反射和散射,使得天空呈现蓝色。
4.3 同步 & 异步客户端不同调用次数耗时对比测试
下面的这段代码分别调用同步和异步客户端重复 test_num 次问答过程,对比所需要的总时间和单次时间,用户可以更改以下的参数进行测试:
- test_messages: 测试数据
- test_num: 测试次数
- model_name: 测试模型
import time
import asyncio
from ollama import Client, AsyncClient
import nest_asyncio# 应用nest_asyncio以支持Jupyter中的异步操作
nest_asyncio.apply()# 初始化客户端
client = Client(host='http://localhost:11434')
async_client = AsyncClient(host='http://localhost:11434')# 同步请求处理函数
def request_example(client, model_name, messages):start_time = time.time()try:# 同步请求返回response = client.chat(model=model_name, messages=messages)except Exception as e:print(f"同步请求失败: {e}")response = Noneend_time = time.time()duration = end_time - start_timeprint(f"同步请求时间: {duration}")return response, duration# 异步请求处理函数
async def async_request_example(client, model_name, messages):start_time = time.time()try:# 异步请求返回response = await client.chat(model=model_name, messages=messages)except Exception as e:print(f"异步请求失败: {e}")response = Noneend_time = time.time()duration = end_time - start_timeprint(f"异步请求时间: {duration}")return response, duration# 异步请求测试函数
async def async_client_test(test_num, model_name, messages):tasks = [asyncio.create_task(async_request_example(async_client, model_name, messages)) for _ in range(test_num)]results= await asyncio.gather(*tasks)return results# 运行同步测试
def sync_test(model_name, messages, test_num):total_time = 0for i in range(test_num):_, duration = request_example(client, model_name, messages)total_time += durationreturn total_time / test_num# 运行异步测试
async def async_test(model_name, messages, test_num):start_time = time.time()await async_client_test(test_num, model_name, messages)end_time = time.time()return (end_time - start_time) / test_num# 准备测试数据
test_messages = [{'role': 'user', 'content': '为什么天空是蓝色的?'}]
test_num = 10
model_name = 'llama3.1'# 运行同步测试并输出结果
print("运行同步测试")
sync_avg_time = sync_test(model_name, test_messages, test_num)
print(f"同步测试平均时间: {sync_avg_time:.2f} 秒")# 运行异步测试并输出结果
print("运行异步测试")
async_avg_time = asyncio.run(async_test(model_name, test_messages, test_num))
print(f"异步测试平均时间: {async_avg_time:.2f} 秒")
输出结果如下
$ python chatOllamaCompare.py
运行同步测试
同步请求时间: 21.837965965270996
同步请求时间: 14.356688976287842
同步请求时间: 9.824847221374512
同步请求时间: 7.3810038566589355
同步请求时间: 26.327489137649536
同步请求时间: 3.798759937286377
同步请求时间: 3.2882120609283447
同步请求时间: 4.4669623374938965
同步请求时间: 20.057428121566772
同步请求时间: 18.331632137298584
同步测试平均时间: 12.97 秒
运行异步测试
异步请求时间: 17.220829725265503
异步请求时间: 22.143115520477295
异步请求时间: 25.050747394561768
异步请求时间: 37.48423147201538
异步请求时间: 39.91522455215454
异步请求时间: 45.73204565048218
异步请求时间: 54.223785161972046
异步请求时间: 74.84906721115112
异步请求时间: 86.34020566940308
异步请求时间: 94.66462182998657
异步测试平均时间: 9.47 秒
三、常用的ollama API 接口
聊天
ollama.chat(model=qwen05b', messages=[{'role': 'user', 'content': '为什么天空是蓝色的?'}])
生成
ollama.generate(model=qwen05b', prompt='为什么天空是蓝色的?')
本地模型列表
ollama.list()
显示模型信息
ollama.show('llama3.1')
创建模型
modelfile='''
FROM llama3.1
SYSTEM 你是超级马里奥兄弟中的马里奥。
'''ollama.create(model='example', modelfile=modelfile)
复制模型
ollama.copy('llama3.1', 'user/llama3.1')
删除模型
ollama.delete('llama3.1')
拉取模型
ollama.pull('llama3.1')
推送模型
ollama.push('user/llama3.1')
生成嵌入
ollama.embeddings(model='qwen05b', prompt='天空是蓝色的因为瑞利散射')
# 批量生成embedding
ollama.embed(model='qwen05b', input=['天空是蓝色的', '草是绿色的'])
进程
ollama.ps()
四、遇到问题与解决
1.使用ChatResponse进行chat报错
raise ResponseError(e.response.text, e.response.status_code) from None
ollama._types.ResponseError: model "llama3.1" not found, try pulling it first (status code: 404)
解决:使用ollama pull 拉取模型
五、推荐的代码库
https://github.com/ollama/ollama-python
相关文章:
在 Python 中使用 Ollama API
文章目录 一、环境准备二、使用方法1.简单对话2.流式响应3.结构化输出4.自定义客户端4.1 同步客户端4.2 异步客户端4.3 同步 & 异步客户端不同调用次数耗时对比测试 三、常用的ollama API 接口聊天生成本地模型列表显示模型信息创建模型复制模型删除模型拉取模型推送模型生…...
BGP配置华为——RR反射器配置
实验拓扑 与之前实验同理将loop0作为routerID使用,且R1和R2上用loop1接口用于模拟用户其他网段 实验要求 1,在AS100内运行OSPF协议 2.配置路由反射器,使得从R1进入的数据能够反射到全局网络 3.在R1和R2上分别宣告自己的loop1口网段用于观…...
一.AI大模型开发-初识机器学习
机器学习基本概念 前言 本文主要介绍了深度学习基础,包括机器学习、深度学习的概念,机器学习的两种典型任务分类任务和回归任务,机器学习中的基础名词解释以及模型训练的基本流程等。 一.认识机器学习 1.人工智能和机器学习 人工智能&am…...
力扣做题记录 (二叉树)
二叉树 打算先来了解二叉树基础,都是简单题,目的是熟悉代码格式和解题基础思路。 1、二叉树最大深度 二叉树最大深度 方法一、深度搜索 直接用原函数做递归,比较简单 /*** Definition for a binary tree node.* struct TreeNode {* …...
国内情智机器人:从“通情达理”到温暖陪伴的跨越
近年来,随着人工智能技术的飞速发展,情智机器人(具备情感智能的机器人)逐渐成为国内研究和应用的热点领域。从情感计算的基础研究到人形机器人的实际应用,国内在这一领域取得了显著进展,展现出巨大的发展潜力。情智机器人不仅能够理解人类的情感,还能以温暖的方式提供陪…...
Unity中如何判断URL是否为RTSP或RTMP流
技术背景 如何在Unity中判断一个字符串URL是否是RTSP或RTMP流。首先,RTSP通常以“rtsp://”开头,而RTMP则是“rtmp://”或者有时是“rtmps://”用于安全连接。 接下来,如何在C#中进行字符串的检查。最简单的方法应该是检查URL是否以这些协议…...
前端里的this指向问题
目录 1.代码输出结果 2.代码输出结果 3.代码输出结果 4.代码输出结果 5.代码输出结果 6.代码输出结果 7.代码输出结果 8.代码输出结果 9.代码输出结果 10.代码输出结果 11.代码输出结果 12.代码输出结果 13.代码输出结果 14.代码输出结果 总结 1.代码输出结果 f…...
deepseek与gpt,核心原理对比
DeepSeek与GPT作为AI大模型,在自然语言处理等领域展现出强大的能力,它们的核心原理对比主要体现在模型架构、训练策略、资源效率以及应用场景优化等方面。 一、模型架构 DeepSeek 混合专家(MoE)框架:DeepSeek采用了混合专家框架,其内部包含多个“专家”子模块,每个子模…...
提示工程实现数据质量评估
提示工程实现数据质量评估 我准备先查看数据集的基本信息和内容,从完整性、准确性、一致性等方面评价数据质量,再依据数据规模、质量和潜在价值等因素进行定价。 import pandas as pd# 读取文件 excel_file = pd.ExcelFile(/mnt/a-极速-脑筋-98.xls)# 获取所有表名 sheet_n…...
[NKU]C++基础课(二)--- externC、强制类型转换、类与对象、面向对象程序设计语言、对象创建和使用、类的定义、封装
一、extern "C" (没看懂) extern "C" 是 C 语言中的一个特性,用于在 C 代码中声明使用 C 语言链接的变量或函数。这样做的目的主要是为了实现 C 代码与 C 代码之间的互操作性。 C 支持函数重载,而 C 不支持&…...
黑马Redis详细笔记(实战篇---短信登录)
目录 一.短信登录 1.1 导入项目 1.2 Session 实现短信登录 1.3 集群的 Session 共享问题 1.4 基于 Redis 实现共享 Session 登录 一.短信登录 1.1 导入项目 数据库准备 -- 创建用户表 CREATE TABLE user (id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 用户ID,phone …...
什么是计算机总线?
计算机总线 文章目录 计算机总线1、总线的分类2、总线的组成3、总线的工作原理4、总线的性能指标 计算机总线是计算机各功能部件之间进行信息传输的公共通道,就像城市中的交通干线,负责连接计算机系统的各个组成部分,实现它们之间的数据、地址…...
ASP.NET配置文件多种方式读取
ASP.NET Core项⽬默认的配置⽂件是appsettings.json,创建项⽬时就会⾃动⽣成这个⽂ 件,我们可以将⼀些配置信息存放在这个配置⽂件中,这样做的好处是当我们修改配置⽂件 时,不在需要重启应⽤,可以实现热更新。 {"…...
基于N-gram模型的中文文本分析系统设计与实现
前言 在数字化人文研究快速发展的背景下,中文古典文本的量化分析面临着独特的挑战。古典文献中繁简异体字共存、语义单元边界模糊、意象隐喻密集等特征,使得传统的词频统计方法难以准确捕捉其深层语言规律。现有文本分析工具多面向现代汉语设计ÿ…...
零基础购买阿里云服务器,XShell连接云服务器
目录 1.环境搭建方式 2. 使用云服务器 3.使用终端软件登录到Linux 4.使用XShell登录主机 5.连接失败的原因: 下一篇更新:Linux的基础指令以及如何Linux的环境搭建 1.环境搭建方式 主要有四种: 1.直接安装在物理机上,虽然Linux有图形化…...
成熟开发者需具备的能力
精业务 • 指深入理解和熟悉所开发软件的业务逻辑和需求。 • 开发者需要明确软件要解决的问题、面向的用户群体以及核心功能等。 • 精业务有助于开发者更好地设计系统架构、编写符合业务需求的代码,并能根据业务变化灵活调整开发计划。 懂原理 • 指掌握编程的基…...
深入解析PID控制算法:从理论到实践的完整指南
前言 大家好,今天我们介绍一下经典控制理论中的PID控制算法,并着重讲解该算法的编码实现,为实现后续的倒立摆样例内容做准备。 众所周知,掌握了 PID ,就相当于进入了控制工程的大门,也能为更高阶的控制理论…...
CNN手写数字识别1——模型搭建与数据准备
模型搭建 我们这次使用LeNet模型,LeNet是一个经典的卷积神经网络(Convolutional Neural Network, CNN)架构,最初由Yann LeCun等人在1998年提出,用于手写数字识别任务 创建一个文件model.py。实现以下代码。 源码 #…...
深度学习04 数据增强、调整学习率
目录 数据增强 常用的数据增强方法 调整学习率 学习率 调整学习率 调整学习率的方法 有序调整 等间隔调整 多间隔调整 指数衰减 余弦退火 自适应调整 自定义调整 数据增强 数据增强是通过对训练数据进行各种变换(如旋转、翻转、裁剪等)&am…...
Python 自然语言处理(NLP)和文本挖掘的常规操作过程
Python 自然语言处理(NLP)和文本挖掘 自然语言处理(NLP)和文本挖掘是数据科学中的重要领域,涉及对文本数据的分析和处理。Python 提供了丰富的库和工具,用于执行各种 NLP 和文本挖掘任务。以下是一些常见的…...
掌握SQLite_轻量级数据库的全面指南
1. 引言 1.1 SQLite简介 SQLite 是一个嵌入式关系型数据库管理系统,它不需要单独的服务器进程或系统配置。它的设计目标是简单、高效、可靠,适用于各种应用场景,尤其是移动设备和嵌入式系统。 1.2 为什么选择SQLite 轻量级:文件大小通常在几百KB到几MB之间。无服务器架构…...
PH热榜 | 2025-02-16
1. Cal.com Routing 标语:根据客户线索,系统会智能地自动安排约会。 介绍:告别繁琐的排期!Cal.com 推出了新的路由功能,能更智能地分配预约,让你的日程安排更顺畅。这项功能运用智能逻辑和深入的数据分析…...
数据库基本概念及基本使用
数据库基本概念 什么是数据库: 数据库特点: 常见的数据库软件: 不同的公司进行不同的实践,生成了不同的产品。 比如买汽车,汽车只是一个概念,你要买哪个牌子哪个型号的汽车,才是真正的汽车的一…...
gozero实现数据库MySQL单例模式连接
在 GoZero 框架中实现数据库的单例连接可以通过以下步骤来完成。GoZero 使用 gorm 作为默认的数据库操作框架,接下来我会展示一个简单的单例模式实现。 ### 1. 定义数据库连接的单例结构 首先,你需要定义一个数据库连接的结构体,并在初始化…...
CSS flex布局 列表单个元素点击 本行下插入详情独占一行
技术栈:Vue2 javaScript 简介 在实际开发过程中有遇到一个场景:一个list,每行个数固定,点击单个元素后,在当前行与下一行之间插入一行元素详情,便于更直观的查看到对应的数据详情。 这种情形,…...
无人机航迹规划: 梦境优化算法(Dream Optimization Algorithm,DOA)求解无人机路径规划MATLAB
一、梦境优化算法 梦境优化算法(Dream Optimization Algorithm,DOA)是一种新型的元启发式算法,其灵感来源于人类的梦境行为。该算法结合了基础记忆策略、遗忘和补充策略以及梦境共享策略,通过模拟人类梦境中的部分记忆…...
权限五张表
重点:权限五张表的设计 核心概念: 在权限管理系统中,经典的设计通常涉及五张表,分别是用户表、角色表、权限表、用户角色表和角色权限表。这五张表的设计可以有效地管理用户的权限,确保系统的安全性和灵活性。 用户&…...
Docker-数据卷
1.数据卷 容器是隔离环境,容器内程序的文件、配置、运行时产生的容器都在容器内部,我们要读写容器内的文件非常不方便。大家思考几个问题: 如果要升级MySQL版本,需要销毁旧容器,那么数据岂不是跟着被销毁了࿱…...
在Linux系统下修改Docker的默认存储路径
在Linux系统下修改Docker的默认存储路径可以通过多种方法实现,下边是通过修改daemon.json文件方式实现 查看当前Docker存储路径 使用命令 docker info | grep "Docker Root Dir" 查看当前Docker的存储路径,默认为 /var/lib/docker 停止Docker…...
IT : 是工作還是嗜好? Delphi 30周年快乐!
又到2月14日了, 自从30多年前收到台湾宝蓝(Borland)公司一大包的3.5 磁盘片, 上面用黑色油性笔写着Delphi Beta开始, Delphi便和我的工作生涯有了密不可分的关系. 一年后Delphi大获成功, 自此对于使用Delphi的使用者来说2月14日也成了一个特殊的日子! 我清楚记得Delphi Beta使用…...
