Python操作MySQL入门教程,使用pymysql操作MySQL,有录播直播私教课
创建数据库
create database gx character set utf8mb4;
连接数据库
#!/usr/bin/python3import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()print("Database version : %s " % data)# 关闭数据库连接
db.close()
创建数据库表
#!/usr/bin/python3import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("drop table if exists user")# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"cursor.execute(sql)# 关闭数据库连接
db.close()
新增数据
基本用法
#!/usr/bin/python3import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("drop table if exists user")# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
try:# 执行sql语句cursor.execute(sql)# 提交到数据库执行db.commit()
except:# 如果发生错误则回滚db.rollback()# 使用预处理语句创建表
sql = "insert into user(name,age) values(%s,%s)"
args = ["张三", 23]
try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()
except:# 如果发生错误则回滚db.rollback()# 关闭数据库连接
db.close()
封装execute方法
import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 使用预处理语句创建表
sql = "insert into user(name,age) values(%s,%s)"
args = ["张三", 23]
execute(db, sql, args)# 关闭数据库连接
db.close()
批量新增
import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def executemany(db, sql, args=None):if type(args) is not list:return# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.executemany(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 使用预处理语句创建表
sql = "insert into user(name,age) values(%s,%s)"
args = [("张三1", 23),("张三2", 33),("张三3", 24),
]
executemany(db, sql, args)# 关闭数据库连接
db.close()
查询数据
查询单条数据
import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def fetchone(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchone()def executemany(db, sql, args=None):if type(args) is not list:return# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.executemany(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 使用预处理语句创建表
sql = "insert into user(name,age) values(%s,%s)"
args = [("张三1", 23),("张三2", 33),("张三3", 24),
]
executemany(db, sql, args)# 查询
sql = "select * from user where id = %s"
args = [1]
print(fetchone(db, sql, args))# 关闭数据库连接
db.close()
查询多条数据
import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def fetchone(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchone()def fetchall(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchall()def executemany(db, sql, args=None):if type(args) is not list:return# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.executemany(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 使用预处理语句创建表
sql = "insert into user(name,age) values(%s,%s)"
args = [("张三1", 23),("张三2", 33),("张三3", 24),
]
executemany(db, sql, args)# 查询
sql = "select * from user"
print(fetchall(db, sql))# 关闭数据库连接
db.close()
更新数据
更新单条数据
import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def fetchone(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchone()def fetchall(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchall()def executemany(db, sql, args=None):if type(args) is not list:return# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.executemany(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 批量新增
sql = "insert into user(name,age) values(%s,%s)"
args = [("张三1", 23),("张三2", 33),("张三3", 24),
]
executemany(db, sql, args)# 更新
sql = "update user set name=%s where id = %s"
args = ["张三333", 1]
execute(db, sql, args)# 查询
sql = "select * from user"
print(fetchall(db, sql))# 关闭数据库连接
db.close()
更新多条数据
import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def fetchone(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchone()def fetchall(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchall()def executemany(db, sql, args=None):if type(args) is not list:return# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.executemany(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 批量新增
sql = "insert into user(name,age) values(%s,%s)"
args = [("张三1", 23),("张三2", 33),("张三3", 24),
]
executemany(db, sql, args)# 更新
sql = "update user set age=%s where id > %s"
args = [34, 1]
execute(db, sql, args)# 查询
sql = "select * from user"
print(fetchall(db, sql))# 关闭数据库连接
db.close()
删除数据
删除单条数据
import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def fetchone(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchone()def fetchall(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchall()def executemany(db, sql, args=None):if type(args) is not list:return# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.executemany(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 批量新增
sql = "insert into user(name,age) values(%s,%s)"
args = [("张三1", 23),("张三2", 33),("张三3", 24),
]
executemany(db, sql, args)# 删除
sql = "delete from user where id = %s"
args = [1]
execute(db, sql, args)# 查询
sql = "select * from user"
print(fetchall(db, sql))# 关闭数据库连接
db.close()
删除多条数据
import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def fetchone(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchone()def fetchall(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchall()def executemany(db, sql, args=None):if type(args) is not list:return# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.executemany(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 批量新增
sql = "insert into user(name,age) values(%s,%s)"
args = [("张三1", 23),("张三2", 33),("张三3", 24),
]
executemany(db, sql, args)# 删除
sql = "delete from user where id > %s"
args = [1]
execute(db, sql, args)# 查询
sql = "select * from user"
print(fetchall(db, sql))# 关闭数据库连接
db.close()
in查询
初步实现
这种方案,有比较严重的注入的风险。
import mysql as pymysql# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def fetchone(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchone()def fetchall(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchall()def executemany(db, sql, args=None):if type(args) is not list:return# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.executemany(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def fetchmany(db, sql, args=None):if type(args) is not list:return# select * from user where id in (1,2,3)in_arg = ",".join([str(i) for i in args])print("in查询SQL:", sql)print("in查询参数:", in_arg)sql = sql % (in_arg,)print("in查询最终SQL:", sql)cursor = db.cursor()cursor.execute(sql)return cursor.fetchall()# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 批量新增
sql = "insert into user(name,age) values(%s,%s)"
args = [("张三1", 23),("张三2", 33),("张三3", 24),
]
executemany(db, sql, args)# 根据id列表查询
sql = "select * from user where id in (%s)"
args = [1, 2, 4]
print(fetchmany(db, sql, args))# 查询
sql = "select * from user"
print(fetchall(db, sql))# 关闭数据库连接
db.close()
安全性优化
核心代码:
def is_safe_id(id):"""校验是否为安全的ID"""return re.match(r"^\w+$", str(id)) is not Nonedef fetchin(db, sql, args=None):if type(args) is not list:return# select * from user where id in (1,2,3)in_arg = ",".join([str(i) for i in args if is_safe_id(i)])print("in查询SQL:", sql)print("in查询参数:", in_arg)sql = sql % (in_arg,)print("in查询最终SQL:", sql)cursor = db.cursor()cursor.execute(sql)return cursor.fetchall()
完整代码:
import mysql as pymysql
import re# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def fetchone(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchone()def fetchall(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchall()def executemany(db, sql, args=None):if type(args) is not list:return# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.executemany(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def is_safe_id(id):"""校验是否为安全的ID"""return re.match(r"^\w+$", str(id)) is not Nonedef fetchin(db, sql, args=None):if type(args) is not list:return# select * from user where id in (1,2,3)in_arg = ",".join([str(i) for i in args if is_safe_id(i)])print("in查询SQL:", sql)print("in查询参数:", in_arg)sql = sql % (in_arg,)print("in查询最终SQL:", sql)cursor = db.cursor()cursor.execute(sql)return cursor.fetchall()# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 批量新增
sql = "insert into user(name,age) values(%s,%s)"
args = [("张三1", 23),("张三2", 33),("张三3", 24),
]
executemany(db, sql, args)# 根据id列表查询
sql = "select * from user where id in (%s)"
args = [1, 2, 4]
print(fetchin(db, sql, args))# 查询
sql = "select * from user"
print(fetchall(db, sql))# 关闭数据库连接
db.close()
根据ID列表删除
import mysql as pymysql
import re# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def fetchone(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchone()def fetchall(db, sql, args=None):cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchall()def executemany(db, sql, args=None):if type(args) is not list:return# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:# 执行sql语句cursor.executemany(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def is_safe_id(id):"""校验是否为安全的ID"""return re.match(r"^\w+$", str(id)) is not Nonedef fetchin(db, sql, args=None):if type(args) is not list:return# select * from user where id in (1,2,3)in_arg = ",".join([str(i) for i in args if is_safe_id(i)])print("in查询SQL:", sql)print("in查询参数:", in_arg)sql = sql % (in_arg,)print("in查询最终SQL:", sql)cursor = db.cursor()cursor.execute(sql)return cursor.fetchall()def deletein(db, sql, args=None):if type(args) is not list:returnin_arg = ",".join([str(i) for i in args if is_safe_id(i)])sql = sql % (in_arg,)cursor = db.cursor()cursor.execute(sql)# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 批量新增
sql = "insert into user(name,age) values(%s,%s)"
args = [("张三1", 23),("张三2", 33),("张三3", 24),
]
executemany(db, sql, args)# 根据id列表删除
sql = "delete from user where id in (%s)"
args = [1, 2, 4]
deletein(db, sql, args)# 查询
sql = "select * from user"
print(fetchall(db, sql))# 关闭数据库连接
db.close()
使用with上下文执行SQL
import mysql as pymysql
import re# 打开数据库连接
db = pymysql.connect(host='localhost',port=3306,user='root',password='zhangdapeng520',database='gx')def execute(db, sql, args=None):# 使用 cursor() 方法创建一个游标对象 cursorwith db.cursor() as cursor:try:# 执行sql语句cursor.execute(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def fetchone(db, sql, args=None):with db.cursor() as cursor:cursor.execute(sql, args)return cursor.fetchone()def fetchall(db, sql, args=None):with db.cursor() as cursor:cursor = db.cursor()cursor.execute(sql, args)return cursor.fetchall()def executemany(db, sql, args=None):if type(args) is not list:returnwith db.cursor() as cursor:try:# 执行sql语句cursor.executemany(sql, args)# 提交到数据库执行db.commit()except:# 如果发生错误则回滚db.rollback()def is_safe_id(id):"""校验是否为安全的ID"""return re.match(r"^\w+$", str(id)) is not Nonedef fetchin(db, sql, args=None):if type(args) is not list:return# select * from user where id in (1,2,3)in_arg = ",".join([str(i) for i in args if is_safe_id(i)])print("in查询SQL:", sql)print("in查询参数:", in_arg)sql = sql % (in_arg,)print("in查询最终SQL:", sql)cursor = db.cursor()cursor.execute(sql)return cursor.fetchall()def deletein(db, sql, args=None):if type(args) is not list:returnin_arg = ",".join([str(i) for i in args if is_safe_id(i)])sql = sql % (in_arg,)cursor = db.cursor()cursor.execute(sql)# 使用 execute() 方法执行 SQL,如果表存在则删除
sql = "drop table if exists user"
execute(db, sql)# 使用预处理语句创建表
sql = "create table user(id int primary key auto_increment, name varchar(36), age int)"
execute(db, sql)# 批量新增
sql = "insert into user(name,age) values(%s,%s)"
args = [("张三1", 23),("张三2", 33),("张三3", 24),
]
executemany(db, sql, args)# 根据id列表删除
sql = "delete from user where id in (%s)"
args = [1, 2, 4]
deletein(db, sql, args)# 查询
sql = "select * from user"
print(fetchall(db, sql))# 关闭数据库连接
db.close()
相关文章:
Python操作MySQL入门教程,使用pymysql操作MySQL,有录播直播私教课
创建数据库 create database gx character set utf8mb4;连接数据库 #!/usr/bin/python3import mysql as pymysql# 打开数据库连接 db pymysql.connect(hostlocalhost,port3306,userroot,passwordzhangdapeng520,databasegx)# 使用 cursor() 方法创建一个游标对象 cursor cur…...
面试 React 框架八股文十问十答第七期
面试 React 框架八股文十问十答第七期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)React 废弃了哪些生命…...
Docker教程
docker 安装 官方文档 wget -qO- https://get.docker.com/ | sh sudo usermod -aG docker your-user sudo usermod -aG docker ${USER} newgrp docker # 更新docker用户组 cat /etc/group | grep docker docker --version 使用非root用户管理 帮助启动类 命令 system…...
数据结构:二叉树
数据结构:二叉树 文章目录 数据结构:二叉树1.一些特殊的二叉树1.满二叉树2.完全二叉树 2.手动创建一颗二叉树3.二叉树深度优先遍历4.二叉树层序遍历5.二叉树基础操作1.创建二叉树2.二叉树节点个数3.二叉树叶子节点个数4.二叉树的高度5.二叉树第k层节点个…...
HTTP超文本传输协议
原文链接: 1.5 万字 40 张图解 HTTP 常见面试题(值得收藏)_图解http 小林-CSDN博客https://blog.csdn.net/qq_34827674/article/details/124089736?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170521531616777224478386%252…...
视频SDK的技术架构优势和价值
为了满足企业对于高质量视频的需求,美摄科技推出了一款强大的视频SDK(软件开发工具包),旨在帮助企业轻松实现高效、稳定的视频功能,提升用户体验,增强企业竞争力。 一、美摄视频SDK的技术实现方式 美摄视…...
Invalid bound statement (not found)(xml文件创建问题)
目录 解决方法: 这边大致讲一下我的经历,不想看的直接点目录去解决方法 今天照着老师视频学习,中间老师在使用动态SQL时,直接复制了一份,我想这么简单的一个,我直接从网上找内容创建一个好了,…...
正则表达式2 常见模式
继上次的正则表达式速攻1/2-CSDN博客 还有一些常见的匹配模式可以直接使用 电子邮箱 xxxxxx.域名 的情况 \b[A-Za-z0-9._%-][A-Za-z0-9.-]\.[A-Z|a-z]{2,}\bhttp或者https网址 的情况 http[s]?://(?:[a-zA-Z]|[0-9]|[$-_.&]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F…...
前端对接电子秤、扫码枪设备serialPort 串口使用教程
因为最近工作项目中用到了电子秤,需要对接电子秤设备。以前也没有对接过这种设备,当时也是一脸懵逼,脑袋空空。后来就去网上搜了一下前端怎么对接,然后就发现了SerialPort串口。 Serialport 官网地址:https://serialpo…...
LeeCode前端算法基础100题(18)整数转罗马数字
一、问题详情: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1…...
【C++ 程序设计入门基础】- 第4节-函数
1、函数 函数是对实现某一功能的代码的模块化封装。 函数的定义: 标准函数: 输入 n 对整数的 a、b ,输出它们的和。 #include <iostream> #include <windows.h> using namespace std;int add(int a,int b);//函数原型声明int…...
华为数通HCIA题库(750题)
完整题库在这里:华为数通HCIA-RS题库注释版-加水印.pdf资源-CSDN文库 此处只节选几题。 1.网络管理员在网络中捕获到了一个数据帧,其目的MAC地址是01-00-5E-AO-B1-C3。关于该MAC地址的说法正确的是( )。 A.它是一个单播MAC地址 B.它是一个广播…...
SpringIOC之support模块GenericXmlApplicationContext
博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…...
CCF认证+蓝桥杯习题训练
贪心 *上取整公式* *代码展示* #include <iostream> #include <cstring> #include <algorithm>using namespace std;const int N 1e5 10;typedef long long LL;int v[N] , a[N];int main() {int n , d;cin >> n >> d;for(int i 1 ; i < n…...
vue前端开发自学基础,动态切换组件的显示
vue前端开发自学基础,动态切换组件的显示!这个是需要借助于,一个官方提供的标签,名字叫【Component】-[代码demo:<component :is"ComponetShow"></component>]。 下面看看代码详情。 <template><h3>动态…...
16.桥接模式
桥接模式 介绍 桥接模式是一种结构型设计模式,它通过将抽象部分与实现部分分离,使它们可以独立变化。这种模式通过组合的方式来实现,而不是继承。桥接模式通过将抽象和实现解耦,从而实现抽象和实现的分离,使得系统更加…...
【网络安全】【密码学】【北京航空航天大学】实验一、数论基础(上)【C语言和Java实现】
实验一、数论基础(上) 一、实验目的 1、通过本次实验,熟悉相关的编程环境,为后续的实验做好铺垫; 2、回顾数论学科中的重要基本算法,并加深对其的理解,为本学期密码学理论及实验课程打下良好…...
Go语言的sync.Pool如何使用?使用场景具体有哪些?
sync.Pool 是 Go 标准库中提供的一个对象池(Object Pool)的实现。对象池是一种用于缓存和复用对象的机制,可以在一定程度上减轻内存分配的开销。sync.Pool 专门用于管理临时对象,适用于一些需要频繁创建和销毁的短暂对象ÿ…...
MySQL单表查询练习题
一、创建表的素材 表名:worker——表中字段均为中文,比如:部门号、工资、职工号、参加工作等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 …...
Spring MVC中@Controller和@RestController的区别
Controller 和 RestController 是 Spring MVC 中用于处理 HTTP 请求的注解,它们有以下区别: 返回值处理方式: Controller 用于定义一个传统的 Spring MVC 控制器,它的方法通常返回视图名称或 ModelAndView 对象,由视图…...
OpenClaw API配置失败?3步快速修复,免费额度高效利用
OpenClaw API配置失败?3步快速修复,免费额度高效利用引言 OpenClaw作为新一代数据采集平台,其API凭借高效稳定的特性已成为开发者首选的工具之一。但在实际接入过程中,配置失败问题频发,尤其对免费额度用户造成严重困扰…...
[LangChain智能体本质论-01]两种视角看待Agent和ReAct循环
作为LangChain智能体的Agent采用一种被称为ReAct循环的执行流程(如下图所示),这是一种结合了“推理”(Reasoning)与“行动”(Acting)的交互模式,旨在让Agent能像人类一样通过逻辑思考…...
Phi-4-mini-reasoning效果展示:含单位换算、科学计数法的复合型数学题求解
Phi-4-mini-reasoning效果展示:含单位换算、科学计数法的复合型数学题求解 1. 模型能力概览 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型,特别擅长处理需要多步逻辑推导的问题。与通用聊天模型不同,它更专注于"问题输入→…...
DDA直线插补算法在MATLAB中的优化实现与性能分析
1. DDA直线插补算法基础与MATLAB实现 DDA(Digital Differential Analyzer)算法是计算机图形学中最基础的直线生成算法之一,它的核心思想是利用直线的微分方程来递推计算像素点位置。我第一次接触这个算法是在大学计算机图形学课程上ÿ…...
MAVLink垂直扩展:Emaxx导航板专用协议库设计与实践
1. 项目概述 mavlink_emaxx 是一个面向 Emaxx 导航板(Emaxx Nav Board)定制的 MAVLink 协议消息扩展库。该库并非独立协议栈,而是基于标准 MAVLink v2 协议规范构建的一组专用消息定义(message definitions)与配套 C…...
SpringBoot项目实战:用Java海康SDK搞定摄像头录像与门禁人脸下发(附完整代码)
SpringBoot企业级实战:海康威视SDK深度集成与智能安防系统开发 1. 企业级安防系统架构设计 在智能园区和现代化办公环境中,视频监控与门禁管理的无缝集成已成为刚需。海康威视作为全球领先的安防解决方案提供商,其设备SDK的深度集成能够为Jav…...
天问Block环境下ASRPRO语音芯片实战:语音交互、GPIO控制与PWM调光开发指南
1. 天问Block与ASRPRO芯片开发入门 第一次接触天问Block和ASRPRO语音芯片时,我被它们的组合惊艳到了。这个开发环境就像乐高积木一样,通过拖拽代码块就能完成复杂的功能开发,特别适合像我这样的硬件爱好者。ASRPRO作为一款专为语音交互设计的…...
Stable-Diffusion-v1-5-archive多风格生成效果:复古海报/科技感UI/手绘插画实拍
Stable Diffusion v1.5 Archive多风格生成效果:复古海报/科技感UI/手绘插画实拍 1. 模型介绍与核心能力 Stable Diffusion v1.5 Archive是经典SD1.5文生图模型的归档版本,作为AI图像生成领域的"常青树",它依然保持着强大的通用图…...
Windows系统优化工具WinUtil:从新手到专家的完整使用指南
Windows系统优化工具WinUtil:从新手到专家的完整使用指南 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 你是否厌倦了Windows系统…...
【可分离架构物理信息神经网络:破解维度灾难的分离变量方法论】第2章 SPINN:可分离物理信息神经网络架构
目录 (Chapter 2: SPINN: Separable Physics-Informed Neural Networks) 2.1 SPINN的架构设计原理 2.1.1 按坐标轴的体网络(Body Networks)设计 2.1.2 特征融合机制与参数效率 2.2 前向模式自动微分与计算优化 2.2.1 前向自动微分在分离架构中的优势 2.2.2 超大规模配…...
