当前位置: 首页 > news >正文

Python 连接数据源与邮件功能(九)

文章目录

    • 一、概述
    • 二、Python 连接数据源
      • 1)Python MySQL 基础操作
        • 1、部署MySQL
        • 2、MySQL Connector 库
          • 【1】安装 mysql-connector-python 库
          • 【2】连接 MySQL
          • 【3】增加数据
          • 【4】查询数据
          • 【5】更新数据
          • 【6】删除数据
        • 2、PyMySQL 库
          • 【1】安装 PyMySQL 库
          • 【2】连接 MySQL
          • 【3】增加数据
          • 【4】查询数据
          • 【5】更新数据
          • 【6】更新数据
      • 2)Python Redis 基础操作
        • 1、部署 Redis
        • 2、Python Redis 基本操作
          • 【1】安装 Redis 客户端库
          • 【2】连接 Redis
          • 【3】设置键值对
          • 【4】获取键值对
          • 【5】删除键
          • 【6】判断键是否存在
          • 【7】设置过期时间
          • 【8】自增和自减
    • 三、邮件功能
      • 1)开通邮箱服务功能
        • 1、邮件协议介绍
        • 2、QQ邮箱开启邮件服务设置
        • 3、163邮箱开启邮件服务设置
      • 2)Python 邮件示例讲解

一、概述

连接数据源和邮件发送和邮件接收也是在项目中很常见的功能,数据量小的话,可以存在MySQL、Redis、PostgreSQL 等等,数据量大的话,就可以考虑大型分布式高可用存储数据库系统例如:Hadoop、StarRocks、ClickHouse等等。邮件发送一般用于通知,像告警通知,下单通知,支付通知等等。

在这里插入图片描述

二、Python 连接数据源

1)Python MySQL 基础操作

Python是一种流行的编程语言,而MySQL是一种常用的关系型数据库管理系统。Python中有许多不同的MySQL库可供使用,其中一些最常用的库包括:

  • MySQL Connector——这是MySQL官方提供的Python库,可以在Python 2.7和Python 3.x中使用。它提供了与MySQL数据库的连接和交互的API,并支持多种操作系统。
  • PyMySQL ——这是一个纯Python实现的MySQL客户端库,可以在Python 2.7和Python 3.x中使用。它提供了一种简单而直接的方法来连接到MySQL服务器,并执行查询和其他操作。

1、部署MySQL

MySQL的介绍和部署可以参考我以下几篇文章:

  • 面试宝典之——Mysql
  • MySQL高可用实战( MHA)
  • 【云原生】MySQL on k8s 环境部署

2、MySQL Connector 库

Python 通过 MySQL Connector 模块提供了访问 MySQL 数据库的能力,可以通过该模块使用一系列的函数来进行数据库操作。

下面是一些常用的 Python MySQL 函数:

  • connect():用于连接 MySQL 数据库,返回一个连接对象。

  • cursor():用于创建一个游标对象,该对象用于执行查询语句和读取数据。

  • execute():用于执行 SQL 语句,返回受影响的行数。

  • fetchone():用于获取结果集中的下一行数据。

  • fetchall():用于获取结果集中的所有数据。

  • commit():用于提交事务。

  • rollback():用于回滚事务。

  • close():用于关闭连接。

以下是使用MySQL Connector进行连接和增删改查的演示示例。

【1】安装 mysql-connector-python 库

首先,需要安装mysql-connector-python库:

pip install mysql-connector-python
【2】连接 MySQL

要进行数据库操作,需要先连接MySQL数据库。连接MySQL数据库的代码如下:

import mysql.connector# 连接到MySQL服务器
conn = mysql.connector.connect(
user='username', 
password='password', 
host='hostname', 
database='database_name'
)mycursor = conn.cursor()# 关闭连接
mycursor.close()
conn.close()

在连接数据库时需要替换hostuserpassworddatabase为相应的值。

【3】增加数据

可以使用 execute() 函数执行 INSERT INTO 语句,将数据插入到数据库中。以下是一个示例:

import mysql.connector# 连接到MySQL服务器
conn = mysql.connector.connect(
user='username', 
password='password', 
host='hostname', 
database='database_name'
)mycursor = conn.cursor()sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)conn.commit()print(mycursor.rowcount, "record inserted.")# 关闭连接
mycursor.close()
conn.close()

在这个例子中,将一条记录插入到名为"customers"的表中。通过将数据作为元组传递给execute()方法,将值插入到占位符中。最后,需要使用commit()方法提交更改。

【4】查询数据

可以使用 execute() 函数执行 SELECT 语句,查询数据库中的数据。以下是一个示例:

import mysql.connector# 连接到MySQL服务器
conn = mysql.connector.connect(
user='username', 
password='password', 
host='hostname', 
database='database_name'
)mycursor = conn.cursor()mycursor.execute("SELECT * FROM customers")myresult = mycursor.fetchall()for x in myresult:print(x)# 关闭连接
mycursor.close()
conn.close()

在这个例子中,从名为"customers"的表中选择所有记录,并使用fetchall()方法将结果存储在变量myresult中。最后,使用循环打印每个记录。

【5】更新数据

可以使用 execute() 函数执行 UPDATE 语句,更新数据库中的数据。以下是一个示例:

import mysql.connector# 连接到MySQL服务器
mydb = mysql.connector.connect(
user='username', 
password='password', 
host='hostname', 
database='database_name'
)mycursor = mydb.cursor()sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Highway 21'"mycursor.execute(sql)mydb.commit()print(mycursor.rowcount, "record(s) affected")# 关闭连接
cursor.close()
conn.close()

在这个例子中,将名为"customers"的表中地址为"Highway 21"的记录的地址更新为"Canyon 123"。

【6】删除数据

可以使用 execute() 函数执行 DELETE 语句,删除数据库中的数据。以下是一个示例:

import mysql.connector# 连接到MySQL服务器
mydb = mysql.connector.connect(
user='username', 
password='password', 
host='hostname', 
database='database_name'
)mycursor = mydb.cursor()sql = "DELETE FROM customers WHERE address = 'Canyon 123'"mycursor.execute(sql)mydb.commit()print(mycursor.rowcount, "record(s) deleted")# 关闭连接
cursor.close()
conn.close()

2、PyMySQL 库

Python PyMySQL 是一个纯 Python 实现的 MySQL 客户端库,使用 PyMySQL 可以连接 MySQL 数据库并执行数据库操作。下面介绍一些 PyMySQL 常用的函数:

  • connect():用于连接 MySQL 数据库,返回一个连接对象。

  • cursor():用于创建一个游标对象,该对象用于执行查询语句和读取数据。

  • execute():用于执行 SQL 语句,返回受影响的行数。

  • executemany():用于执行多个 SQL 语句,返回受影响的行数。

  • fetchone():用于获取结果集中的下一行数据。

  • fetchall():用于获取结果集中的所有数据。

  • fetchmany():用于获取结果集中指定数量的数据。

  • commit():用于提交事务。

  • rollback():用于回滚事务。

  • close():用于关闭连接。

【1】安装 PyMySQL 库

首先,需要安装PyMySQL库:

pip install PyMySQL
【2】连接 MySQL

要进行数据库操作,需要先连接MySQL数据库。连接MySQL数据库的代码如下:

接下来,连接到MySQL服务器并执行查询:

import pymysql# 连接到MySQL服务器
conn = pymysql.connect(host='hostname',port=port,user='username',password='password',db='database_name',charset='utf8'
)# 创建游标对象
mycursor = conn.cursor()

在上面的代码中,需要将hostnameportusernamepassworddatabase_name替换为实际的数据库连接信息。

【3】增加数据

可以使用 execute() 函数执行 INSERT INTO 语句,将数据插入到数据库中。以下是一个示例:

import pymysql# 连接数据库
conn = pymysql.connect(host="localhost",user="username",password="password",database="mydatabase"
)# 创建游标对象
mycursor = conn.cursor()# 执行插入语句
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)# 提交事务
conn.commit()# 打印插入数据的 ID
print(mycursor.lastrowid)# 关闭连接
cursor.close()
conn.close()
【4】查询数据

可以使用 execute() 函数执行 SELECT 语句,查询数据库中的数据。以下是一个示例:

import pymysql# 连接数据库
conn = pymysql.connect(host="localhost",user="username",password="password",database="mydatabase"
)# 创建游标对象
mycursor = conn.cursor()# 执行查询语句
sql = "SELECT * FROM customers"
mycursor.execute(sql)# 获取结果集中的所有数据
myresult = mycursor.fetchall()# 打印数据
for x in myresult:print(x)# 关闭连接
cursor.close()
conn.close()
【5】更新数据

可以使用 execute() 函数执行 UPDATE 语句,更新数据库中的数据。以下是一个示例:

import pymysql# 连接数据库
conn = pymysql.connect(host="localhost",user="username",password="password",database="mydatabase"
)# 创建游标对象
mycursor = conn.cursor()# 执行更新语句
sql = "UPDATE customers SET address = 'Canyon 123' WHERE address = 'Highway 21'"
mycursor.execute(sql)# 提交事务
conn.commit()# 打印受影响的行数
print(mycursor.rowcount)# 关闭连接
cursor.close()
conn.close()
【6】更新数据

可以使用 execute() 函数执行 DELETE 语句,删除数据库中的数据。以下是一个示例:

import pymysql# 连接数据库
conn = pymysql.connect(host="localhost",user="username",password="password",database="mydatabase"
)# 创建游标对象
mycursor = conn.cursor()# 执行删除语句
sql = "DELETE FROM customers WHERE address = 'Canyon 123'"
mycursor.execute(sql)# 提交事务
conn.commit()# 打印受影响的行数
print(mycursor.rowcount)# 关闭连接
cursor.close()
conn.close()

上述代码演示了如何连接到 MySQL 数据库、执行插入、更新、删除和查询操作以及关闭连接。在实际应用中,还可以使用其他函数来执行复杂的操作,如连接池、事务管理等。

2)Python Redis 基础操作

Redis 是一种基于内存的数据结构存储系统,它可以用作数据库、缓存和消息代理。Python 是一种流行的编程语言,提供了一个 Redis 客户端库,可以轻松地与 Redis 交互。下面是一些 Python Redis 基本操作的示例。

1、部署 Redis

Redis 的介绍和部署可以参考我以下几篇文章:

  • 面试宝典之——Redis
  • Redis原理介绍与环境部署(主从模式、哨兵模式、集群模式)
  • 【云原生】Redis on k8s 编排部署讲解与实战操作

2、Python Redis 基本操作

【1】安装 Redis 客户端库

要在 Python 中使用 Redis,需要安装 Redis 客户端库。可以使用 pip 工具安装:

pip install redis
【2】连接 Redis

在 Python 中连接 Redis,需要使用 Redis 客户端库中的 Redis 类。可以使用以下代码连接到 Redis:

import redisredis_client = redis.Redis(host='localhost', port=6379, db=0)
【3】设置键值对

可以使用 set 方法设置键值对:

redis_client.set('key', 'value')

也可以使用 mset 方法一次设置多个键值对:

redis_client.mset({'key1': 'value1', 'key2': 'value2'})
【4】获取键值对

可以使用 get 方法获取单个键的值:

value = redis_client.get('key')
print(value)

也可以使用 mget 方法一次获取多个键的值:

values = redis_client.mget(['key1', 'key2'])
print(values)
【5】删除键

可以使用 delete 方法删除一个键:

redis_client.delete('key')

也可以使用 delete 方法删除多个键:

redis_client.delete('key1', 'key2')
【6】判断键是否存在

可以使用 exists 方法判断一个键是否存在:

exists = redis_client.exists('key')
print(exists)
【7】设置过期时间

可以使用 expire 方法设置一个键的过期时间(以秒为单位):

redis_client.expire('key', 60)

也可以使用 expireat 方法设置一个键的过期时间(以 Unix 时间戳为单位):

import timeexpire_time = int(time.time()) + 60
redis_client.expireat('key', expire_time)
【8】自增和自减

可以使用 incr 方法对一个键进行自增操作:

redis_client.set('count', 0)
redis_client.incr('count')

也可以使用 decr 方法对一个键进行自减操作:

redis_client.set('count', 10)
redis_client.decr('count')

以上是一些 Python Redis 的基本操作示例,可以根据具体需要进行适当修改和调整。

三、邮件功能

Python 中可以使用标准库中的 smtplibemail 模块来发送和接收电子邮件。

1)开通邮箱服务功能

1、邮件协议介绍

SMTP、POP3和IMAP都是电子邮件协议,用于在计算机之间传递和接收电子邮件。

  • SMTP(Simple Mail Transfer Protocol)是用于发送电子邮件的协议。它定义了电子邮件如何通过互联网发送,包括如何连接到邮件服务器、如何验证身份、如何传输邮件、如何处理错误等。

  • POP3(Post Office Protocol version 3)是用于接收电子邮件的协议。它定义了电子邮件如何从邮件服务器下载到本地计算机上的电子邮件客户端。POP3协议允许用户下载所有的邮件,但是在本地计算机上只保留一份副本。

  • IMAP(Internet Message Access Protocol)也是用于接收电子邮件的协议。它定义了电子邮件如何从邮件服务器下载到本地计算机上的电子邮件客户端。IMAP协议允许用户对邮件进行管理和组织,例如在本地计算机上创建文件夹来存储邮件,而不是在邮件服务器上。这使得IMAP更适合那些需要在多个设备上使用电子邮件的用户。

总之,SMTP、POP3和IMAP是三种不同的协议,每个协议都有其独特的作用,使得电子邮件的发送和接收变得更加便捷和高效。简单地说,SMTP管,POP3/IMAP管

POP(Post Office Protocol)和 IMAP(Internet Message Access Protocol)都是电子邮件客户端和邮件服务器之间的协议,但是它们在处理电子邮件的方式上有一些重要的区别:

  • 工作方式:POP将邮件从邮件服务器下载到本地计算机上的邮件客户端,然后将邮件从邮件服务器中删除,这意味着用户只能在本地计算机上访问邮件的一份副本;而IMAP将邮件保留在邮件服务器上,只有在用户请求访问邮件时才会下载邮件到本地计算机上的邮件客户端。

  • 多设备支持:由于POP只下载邮件的一份副本到本地计算机上,因此如果用户使用多个设备(如电脑、平板电脑、智能手机等)来访问邮件,则每个设备上的邮件客户端都会显示不同的邮件状态。而IMAP协议允许用户在多个设备上访问邮件,因为邮件始终保留在邮件服务器上。

  • 邮件管理:IMAP允许用户在邮件服务器上对邮件进行管理,例如创建、删除和重命名文件夹,标记邮件已读或未读等。这使得用户可以轻松地在多个设备之间同步邮件状态。而POP协议只是简单地下载邮件并删除它们,不能像IMAP那样管理邮件。

  • 带宽:由于IMAP只在用户需要访问邮件时才下载邮件,因此它可以节省带宽。而POP在每次下载邮件时都会占用带宽,因为它要下载所有邮件的一份副本。

总之,IMAP是更先进的邮件协议,可以提供更多的功能和灵活性,特别是对于那些需要在多个设备上访问邮件的用户。而POP适合那些只使用单个设备访问邮件的用户。

2、QQ邮箱开启邮件服务设置

在这里插入图片描述
在这里插入图片描述

3、163邮箱开启邮件服务设置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后整理一下邮箱服务器:
在这里插入图片描述

2)Python 邮件示例讲解

以下是一个简单的 Python 脚本,演示了如何使用这两个模块来发送电子邮件。

发送邮件实例:

import smtplib
from email.mime.text import MIMEText
from email.header import Header# 设置邮件参数
smtp_server = 'smtp.example.com'  # 邮件服务器
from_addr = 'your_email@example.com'  # 发件人邮箱
to_addr = 'recipient_email@example.com'  # 收件人邮箱
username = 'your_email@example.com'  # 发件人邮箱账号
password = 'your_email_password'  # 发件人邮箱密码# 构建邮件内容
msg = MIMEText('Hello, this is a test email sent by Python.', 'plain', 'utf-8')
msg['From'] = Header('Sender Name', 'utf-8')
msg['To'] = Header('Recipient Name', 'utf-8')
msg['Subject'] = Header('Python Test Email', 'utf-8')# 发送邮件
try:server = smtplib.SMTP(smtp_server, 25)server.login(username, password)server.sendmail(from_addr, to_addr, msg.as_string())server.quit()print("Email sent successfully!")
except smtplib.SMTPException:print("Error: 无法发送邮件")

接收邮件示例:

import poplib# 设置邮件参数
pop_server = 'pop.example.com'  # 邮件服务器
username = 'your_email@example.com'  # 邮箱账号
password = 'your_email_password'  # 邮箱密码# 连接到邮件服务器
server = poplib.POP3(pop_server)
server.user(username)
server.pass_(password)# 获取邮件列表
resp, mails, octets = server.list()
print("Total emails: {}".format(len(mails)))# 获取最新一封邮件
resp, lines, octets = server.retr(len(mails))
msg_content = b'\n'.join(lines).decode('utf-8')# 解析邮件内容
from email.parser import Parser
msg = Parser().parsestr(msg_content)
print("Subject: {}".format(msg['Subject']))
print("From: {}".format(msg['From']))
print("To: {}".format(msg['To']))
print("Content:\n{}".format(msg.get_payload()))

这里的示例代码仅仅是一个简单的示例,可以根据具体的需要来修改和扩展。在使用示例时,注意修改上面的连接信息哦。


Python 连接数据源与邮件功能的讲解就先到这里了,有任何疑问欢迎给我留言哦,欢迎点赞、转发并收藏哦,也可关注我的公众号【大数据与云原生技术分享】进行深入交流技术~

相关文章:

Python 连接数据源与邮件功能(九)

文章目录一、概述二、Python 连接数据源1)Python MySQL 基础操作1、部署MySQL2、MySQL Connector 库【1】安装 mysql-connector-python 库【2】连接 MySQL【3】增加数据【4】查询数据【5】更新数据【6】删除数据2、PyMySQL 库【1】安装 PyMySQL 库【2】连接 MySQL【…...

网站如何锁定用户,超级浏览器有办法解决吗?

随着全球开放,跨境电商人纷纷开启了2023年的搞钱之旅,很多期待着在新的一年大干一场。但前事不忘后事之师,2022年跨境生意全面沦陷,其实除了大环境的因素之外,还有一个很重要的原因是,各个平台都开始实行非…...

Ubuntu下使用Wine运行HBuilderX

安装完wine后,在HbuilderX的目录中打开终端,直接输入wine HBuilderX.exe命令,启动过程中会提示安装wine-mono组件,点击安装按钮下载安装该组件,该组件下载速度慢,需要等待特别长时间。   安装完毕后&…...

如何高效远程维护分布在海外的中大型智能设备?

一、行业需求 随着越来越多的企业进行全球化经营,设备制造商和系统集成商的设备分布到全球各地,数量多而且分散,传统的设备运维方式,面临着出差成本高,工作效率低,服务不及时等问题,客户常常因…...

【双指针问题】LeetCode 925. 长按键入

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...

APP测试中IOS和Android的区别,有哪些注意点?

01、常识性区别 02、导航方式 iOS:Tab放在页面底部,不能通过滑动来切换,只能点击。也有放在上面的,也不能滑动,但有些Tab本身可以滑动,比如天猫的。还有新闻类的应用。 Android:一般放在页面…...

2019蓝桥杯真题平方序列(填空题) C语言/C++

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小明想找到两个正整数 X 和 Y&#xff0c;满足2019<X<Y;2019^2, X^2, Y^2组成等差数列。 请你求出在所有可能的解中&#xff0c;XY 的最小值是多少&#xff1f…...

vue中,给一个URL地址,利用FileSaver.js插件下载文件到本地

①首先下载 FileSaver.js 插件 npm install file-saver --save ②在需要的.vue页面引入 import { saveAs } from file-saver 在HTML中引入 <script src"https://cdn.bootcdn.net/ajax/libs/FileSaver.js/2.0.5/FileSaver.min.js"></script> //Fil…...

从0开始学python -34

Python3 输入和输出-2 读和写文件 open() 将会返回一个 file 对象&#xff0c;基本语法格式如下: open(filename, mode)filename&#xff1a;包含了你要访问的文件名称的字符串值。mode&#xff1a;决定了打开文件的模式&#xff1a;只读&#xff0c;写入&#xff0c;追加等。…...

瑞典军事研究:从认知心理学的视角探讨军事创新进程

来源&#xff1a;Military Innovation as the Result of Mental Models of Technology 《摘要》 政治紧张局势的加剧和技术发展的进步促使Scandinavian 国家&#xff08;斯堪的纳维亚半岛&#xff0c;欧洲最大的半岛&#xff0c;有挪威、瑞典两国以及芬兰北端的一小部分。&am…...

【MySQL进阶-08】深入理解innodb存储格式,双写机制,buffer pool底层结构和淘汰策略

MySql系列整体栏目 内容链接地址【一】深入理解mysql索引本质https://blog.csdn.net/zhenghuishengq/article/details/121027025【二】深入理解mysql索引优化以及explain关键字https://blog.csdn.net/zhenghuishengq/article/details/124552080【三】深入理解mysql的索引分类&a…...

5. AOP

一、如何定义一个MethodHandler? 1.Controller注解修饰的类 1.注册成Spring Bean 2.表示它是一个SpringMVC下的Controller 2.在这个类下的方法中&#xff0c;只要被RequestMapping修饰&&方法的形参符合规定&#xff08;需要看文档&#xff09; 方法的返回值符合规定…...

ubuntu上尝试libpqxx库链接人大金仓

ubuntu上尝试libpqxx库链接人大金仓 C的项目让使用国产数据库 运维给架了一个人大金仓数据库&#xff0c; Kingbase 8 是基于 PostgreSQL 9.6 做的&#xff0c; 尝试直接使用libpqxx链接数据库。 文章目录ubuntu上尝试libpqxx库链接人大金仓第一步 搭建libpqxx开发环境搜索lib…...

【Python入门第十二天】Python 列表

Python 集合&#xff08;数组&#xff09; Python 编程语言中有四种集合数据类型&#xff1a; 列表&#xff08;List&#xff09;是一种有序和可更改的集合。允许重复的成员。元组&#xff08;Tuple&#xff09;是一种有序且不可更改的集合。允许重复的成员。集合&#xff08…...

Android 异步操作库 RxJava

RxJava概述 RxJava 是一种响应式编程&#xff0c;来创建基于事件的异步操作库。基于事件流的链式调用、逻辑清晰简洁。 RxJava 我的理解是将事件从起点&#xff08;上游&#xff09;流向终点&#xff08;下游&#xff09;&#xff0c;中间有很多卡片对数据进操作并传递&#x…...

2021-12-05青少年软件编程(C语言)等级考试试卷(六级)解析

2021-12-05青少年软件编程(C语言)等级考试试卷(六级)解析T1. 电话号码 给你一些电话号码,请判断它们是否是一致的,即是否有某个电话是另一个电话的前缀。比如: Emergency 911 Alice 97 625 999 Bob 91 12 54 26 在这个例子中,我们不可能拨通Bob的电话,因为Emergency的…...

github 使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录一、git与github二、出错的地方1.GitHub没有css样式2、git clone出现错误3、明明创建了responsibility 但git 不显示一、git与github 这个博客写的很好&#xff01;…...

Kubernetes集群维护—备份恢复与升级

Etcd数据库备份与恢复 需要先安装etcd备份工具yum install etcd -y按不同安装方式执行不同备份与恢复kubeadm部署方式&#xff1a; 备份&#xff1a;ETCDCTL_API3 etcdctl snapshot save snap.db --endpointshttps://127.0.0.1:2379 --cacert/etc/kubernetes/pki/etcd/ca.cr…...

前端开发常用案例(二)

这里写目录标题1.loding加载动画2.全屏加载动画效果3.吃豆豆4.鼠标悬停3D翻转效果5.3D旋转木马效果6.flex弹性布局-酷狗音乐播放列表flex弹性布局-今日头条首页热门视频栏grid网格布局-360图片展示小米商城左侧二级菜单1.loding加载动画 代码如下&#xff1a; <!DOCTYPE h…...

基于springboot+vue的儿科保健计划免疫系统

基于springbootvue的儿科保健计划免疫系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...