Python筑基之旅-MySQL数据库(二)
目录
一、第三方库
1、mysql-connector-python
1-1、由来
1-2、优缺点
1-2-1、优点
1-2-1-1、官方支持
1-2-1-2、纯Python实现
1-2-1-3、全面支持
1-2-1-4、兼容性
1-2-1-5、易于使用
1-2-2、缺点
1-2-2-1、性能
1-2-2-2、安装
1-2-2-3、社区支持
1-2-2-4、扩展性
1-3、功能
1-3-1、数据库连接
1-3-2、SQL语句执行
1-3-3、数据类型转换
1-3-4、自动重连与事务处理
1-3-5、SSL加密连接
1-3-6、兼容性与灵活性
2、PyMySQL
2-1、由来
2-2、优缺点
2-2-1、优点
2-2-1-1、简单易用
2-2-1-2、纯Python实现
2-2-1-3、线程安全
2-2-1-4、支持大部分MySQL功能
2-2-1-5、连接池支持
2-2-2、缺点
2-2-2-1、性能
2-2-2-2、资源消耗
2-2-2-3、依赖关系
2-2-2-4、功能限制
2-2-2-5、安全性
2-3、功能
2-3-1、数据库连接
2-3-2、执行SQL语句
2-3-3、事务管理
2-3-4、数据类型转换
2-3-5、连接池
2-3-6、数据库管理
2-3-7、扩展性和灵活性
3、PeeWee
3-1、由来
3-2、优缺点
3-2-1、优点
3-2-1-1、轻量级
3-2-1-2、简单易用
3-2-1-3、支持多种数据库后端
3-2-1-4、良好的性能
3-2-1-5、与Django/Flask的集成
3-2-2、缺点
3-2-2-1、不支持自动化Schema迁移
3-2-2-2、社区支持相对较少
3-2-2-3、功能相对较少
3-3、功能
3-3-1、定义数据库模型
3-3-2、数据库连接和管理
3-3-3、执行CRUD操作
3-3-4、强大的查询构建器
3-3-5、支持多种数据库后端
3-3-6、数据迁移
3-3-7、性能优化
4、SQLAlchemy
4-1、由来
4-2、优缺点
4-2-1、优点
4-2-1-1、易用性
4-2-1-2、灵活性
4-2-1-3、对象关系映射(ORM)
4-2-1-4、查询构建器
4-2-1-5、事务管理
4-2-1-6、性能优化
4-2-1-7、扩展性
4-2-2、缺点
4-2-2-1、学习曲线
4-2-2-2、性能开销
4-2-2-3、调试困难
4-2-2-4、代码冗余
4-3、功能
4-3-1、对象关系映射(ORM)
4-3-2、查询构建器
4-3-3、关系管理
4-3-4、会话管理
4-3-5、数据库迁移
4-3-6、原生SQL支持
4-3-7、连接池
4-3-8、事件监听
4-3-9、扩展性
4-3-10、文档和社区支持
二、推荐阅读
1、Python函数之旅
2、Python算法之旅
3、博客个人主页
一、第三方库
1、mysql-connector-python
1-1、由来
mysql-connector-python是Oracle官方提供的用于Python连接到MySQL数据库的库,它的由来主要是为了提供一个官方的、纯Python实现的MySQL客户端,使Python开发者能够方便地连接到MySQL数据库并执行各种数据库操作,如查询、插入、更新和删除等。
随着Python的普及和MySQL数据库的广泛使用,许多Python开发者需要一种方式来与MySQL数据库进行交互,mysql-connector-python就是为了满足这一需求而诞生的,它遵循Python DB-API 2.0 规范(PEP 249),这意味着它提供了与其他数据库连接库相似的接口和功能,使得开发者可以更容易地使用它,而无需重新学习新的API。
mysql-connector-python提供了全面的功能来连接、查询和管理MySQL数据库,它支持多种连接方式,包括TCP/IP、Unix套接字以及命名管道;此外,它还支持SSL加密连接,确保了数据传输的安全性;在数据类型转换方面,驱动自动将Python对象(如字符串、整数和日期)转化为对应的MySQL数据类型,并将数据库返回的结果转化为Python对象,简化了数据操作。
总之,mysql-connector-python库的由来是为了提供一个官方的、纯Python实现的MySQL客户端库,以满足Python开发者与MySQL数据库进行交互的需求。
1-2、优缺点
mysql-connector-python是Oracle官方提供的Python连接MySQL数据库的库,其主要的优缺点如下:
1-2-1、优点
1-2-1-1、官方支持
由于这是Oracle官方提供的库,因此可以确保它与MySQL数据库的兼容性和稳定性,这也意味着它通常会比第三方库获得更早的更新和修复。
1-2-1-2、纯Python实现
mysql-connector-python是用纯Python编写的,这意味着它不需要任何外部依赖(除了Python本身和MySQL客户端库)即可运行,这使得它在不同的操作系统和环境中都能很好地工作,减少了安装和配置的复杂性。
1-2-1-3、全面支持
它支持大多数MySQL特性,包括事务处理、存储过程、游标等,此外,它还支持SSL加密连接,以确保数据传输的安全性。
1-2-1-4、兼容性
它不仅与MySQL兼容,还与其他MySQL兼容的数据库(如MariaDB、Percona Server等)兼容,这使得它可以在更广泛的环境中使用。
1-2-1-5、易于使用
它遵循Python DB-API 2.0 规范(PEP 249),这使得它与其他Python数据库连接库具有相似的接口和功能,这使得开发者可以更容易地使用它,而无需重新学习新的API。
1-2-2、缺点
1-2-2-1、性能
由于mysql-connector-python是用纯Python编写的,因此在某些情况下,它的性能可能不如使用C或C++编写的其他库(如 MySQLdb 或 PyMySQL),然而,在大多数情况下,这种性能差异可能并不明显。
1-2-2-2、安装
虽然mysql-connector-python本身不需要任何外部依赖即可安装,但它可能需要安装MySQL 客户端库才能正常工作,在某些操作系统中,这可能需要额外的步骤或配置。
1-2-2-3、社区支持
与一些流行的第三方库相比,mysql-connector-python的社区可能较小,这可能导致在寻求帮助或解决问题时,可用的资源和支持较少。
1-2-2-4、扩展性
在某些高级功能上,mysql-connector-python不如ORM(对象关系映射)库(如SQLAlchemy)强大或灵活,ORM库提供了更高级的数据访问和操作功能,以及更强大的查询构建和对象映射功能。
注意,以上优点和缺点都是相对的,并且可能因具体情况而异,在选择使用哪个Python MySQL库时,应根据自己的项目需求、环境要求和偏好进行评估和选择。
1-3、功能
mysql-connector-python是一个纯Python实现的MySQL客户端库,它提供了与MySQL数据库进行交互的多种功能,其主要功能有:
1-3-1、数据库连接
mysql-connector-python支持多种连接方式,包括TCP/IP、Unix套接字以及命名管道,允许Python程序与MySQL数据库建立连接。
1-3-2、SQL语句执行
它支持执行各种SQL语句,包括数据查询(SELECT)、数据插入(INSERT)、数据更新(UPDATE)和数据删除(DELETE)等操作,从而实现对MySQL数据库的全面操作。
1-3-3、数据类型转换
mysql-connector-python能够自动处理Python数据类型与MySQL数据类型之间的转换,简化了数据操作,驱动会自动将Python对象(如字符串、整数和日期)转化为对应的MySQL数据类型,并将数据库返回的结果转化为Python对象。
1-3-4、自动重连与事务处理
当网络中断或服务器重启时,mysql-connector-python可以自动重新建立连接,保证操作的连续性;同时,它支持事务处理,可以按需控制原子性和一致性。
1-3-5、SSL加密连接
mysql-connector-python支持SSL加密连接,确保了数据传输的安全性。
1-3-6、兼容性与灵活性
mysql-connector-python兼容Python 2.7以及3.x版本,并且遵循DB-API 2.0规范(PEP 249),提供了灵活的API供开发者使用。
总的来说,mysql-connector-python是一个功能强大、易于使用且灵活的MySQL客户端库,为Python开发者提供了与MySQL数据库进行交互的便利工具。
2、PyMySQL
2-1、由来
PyMySQL是一个在Python 3.x版本中用于连接MySQL服务器的第三方库,它的由来可以追溯到Python和MySQL这两种技术的融合需求。
首先,Python是一种广泛使用的编程语言,以其简洁、易读和强大的功能而受到开发者的喜爱,而MySQL则是一种流行的关系型数据库管理系统,用于存储和管理大量的数据。在软件开发过程中,经常需要将Python与MySQL进行连接,以实现数据的存储、查询和更新等功能。
然而,Python标准库中并没有直接支持MySQL的库,这就需要在Python和MySQL之间进行桥梁的构建。为了解决这一问题,一些开发者开始开发能够连接Python和MySQL的第三方库,其中PyMySQL就是其中之一。
PyMySQL遵循Python数据库API v2.0规范,并包含了纯Python的MySQL客户端库,它提供了与MySQL数据库进行交互的接口,使得Python开发者可以方便地使用Python语言来操作MySQL数据库。
因此,PyMySQL的由来可以看作是Python和MySQL技术融合的需求推动下的产物,它的出现为Python开发者提供了与MySQL数据库进行交互的便利工具。
2-2、优缺点
PyMySQL作为Python连接MySQL数据库的第三方库,其主要的优缺点如下:
2-2-1、优点
2-2-1-1、简单易用
PyMySQL提供了简单易用的API,使得Python开发者可以方便地进行数据库的连接和操作,它遵循Python DB-API 2.0规范,因此与其他数据库库相比,其使用方式非常相似。
2-2-1-2、纯Python实现
PyMySQL是纯Python编写的库,不需要任何C语言的依赖项,这意味着它可以在Python的各个平台上运行,无需担心平台兼容性问题。
2-2-1-3、线程安全
PyMySQL是线程安全的,可以在多线程环境中安全地使用,这对于需要处理并发连接的Web应用程序来说非常重要。
2-2-1-4、支持大部分MySQL功能
PyMySQL支持大部分MySQL的SQL语法和功能,包括事务、存储过程等,这使得开发者可以使用PyMySQL来执行复杂的数据库操作。
2-2-1-5、连接池支持
虽然PyMySQL本身不提供连接池,但它可以与其他连接池库(如DBUtils)一起使用,以提供更高效、更稳定的数据库连接。
2-2-2、缺点
2-2-2-1、性能
在某些情况下,与MySQL的原生C语言客户端相比,PyMySQL的性能可能会稍逊一筹,特别是在处理大量数据或执行复杂查询时,可能会遇到性能瓶颈。
2-2-2-2、资源消耗
由于PyMySQL是纯Python编写的,因此在运行时可能会消耗更多的CPU和内存资源,这可能会对大型应用程序或服务器的性能产生负面影响。
2-2-2-3、依赖关系
虽然PyMySQL不依赖于C语言库,但它可能依赖于其他Python库或模块,这些依赖关系可能会增加部署和管理的复杂性。
2-2-2-4、功能限制
虽然PyMySQL支持大部分MySQL的功能,但它可能不支持某些高级特性或优化选项,这可能会限制其在某些特定场景下的应用。
2-2-2-5、安全性
在使用PyMySQL时,需要确保正确地处理数据库连接和凭据信息,以防止潜在的安全风险。例如,未加密的连接可能会暴露敏感数据给潜在的攻击者。
注意,这些优点和缺点可能会因应用程序的具体需求和上下文而有所不同,在选择使用PyMySQL时,应根据实际情况进行权衡和决策。
2-3、功能
PyMySQL是一个Python编写的MySQL客户端库,它提供了与MySQL数据库进行交互的多种功能,其主要功能有:
2-3-1、数据库连接
PyMySQL允许Python程序与MySQL数据库建立连接,从而进行后续的数据操作。
2-3-2、执行SQL语句
PyMySQL支持执行各种SQL语句,包括数据查询(SELECT)、数据插入(INSERT)、数据更新(UPDATE)和数据删除(DELETE)等操作。
2-3-3、事务管理
PyMySQL提供了事务管理的功能,允许开发者在数据库操作中执行多个操作作为一个工作单元,要么全部完成,要么全部不完成。
2-3-4、数据类型转换
PyMySQL能够自动处理Python数据类型与MySQL数据类型之间的转换,使开发者无需关心数据类型的差异。
2-3-5、连接池
连接池是管理和复用数据库连接的一种技术,PyMySQL支持连接池功能,可以提高数据库操作的效率和性能。
2-3-6、数据库管理
除了基本的数据操作外,PyMySQL还支持一些数据库管理相关的任务,如创建或删除数据库、创建或删除数据表、创建或删除索引等。
2-3-7、扩展性和灵活性
PyMySQL是一个高度可定制和可扩展的库,开发者可以根据需要扩展其功能或修改其行为。
总之,PyMySQL是一个功能强大、易于使用且灵活的MySQL客户端库,它为Python开发者提供了与MySQL数据库进行交互的便利工具。
3、PeeWee
3-1、由来
Peewee是一个基ORM(对象关系映射)的Python库,由美国软件工程师Charles Leifer于2010年10月开发。ORM是一种编程方法,它允许程序员在面向对象编程语言中,在不兼容的类型系统之间转换数据。Peewee库的主要功能是为Python开发者提供一个轻量级、易用的方式来与数据库进行交互,它支持SQLite、MySQL、PostgreSQL和Cockroach等数据库。
Peewee库的设计目标是提供一种简单、直观的方式来处理数据库操作,同时保持其灵活性,使得开发者可以根据自己的需求进行定制;Peewee库在Python社区中得到了广泛的应用和认可,成为了许多Python项目的首选数据库操作库之一。
3-2、优缺点
PeeWee库作为一个轻量级的ORM框架,在Python社区中受到了一定的欢迎,其主要优缺点有:
3-2-1、优点
3-2-1-1、轻量级
PeeWee占用资源少,非常适合小型应用、原型设计或快速开发场景,它易于集成到各种Python项目中,不会给项目带来过多的依赖和复杂性。
3-2-1-2、简单易用
PeeWee提供了简洁而直观的API,使得与数据库进行交互变得简单和直观,它有很好的文档和示例,便于开发人员快速上手。对于初学者来说,使用PeeWee可以更容易地理解和掌握ORM的概念和用法。
3-2-1-3、支持多种数据库后端
PeeWee支持多种常见的数据库后端,如SQLite、MySQL、PostgreSQL等,这使得开发人员可以根据项目需求选择适合的数据库,提高了项目的灵活性。
3-2-1-4、良好的性能
PeeWee在处理大量数据时表现出色,具有良好的性能,这使得它在处理复杂数据库操作时能够保持较高的效率。
3-2-1-5、与Django/Flask的集成
PeeWee可以与Django或Flask等Web框架集成,提供了更大的灵活性。虽然这些框架都提供了自己的ORM,但PeeWee的集成使得开发者可以根据个人喜好选择使用不同的ORM。
3-2-2、缺点
3-2-2-1、不支持自动化Schema迁移
与其他一些ORM框架相比,PeeWee不支持自动化Schema迁移,这意味着开发者需要手动编写代码来处理数据库表结构的变更,这可能会增加一些额外的工作量。
3-2-2-2、社区支持相对较少
与其他流行的ORM框架(如Django ORM、SQLAlchemy等)相比,PeeWee的社区支持相对较少,这可能会使得在遇到问题时难以找到解决方案或获取帮助。
3-2-2-3、功能相对较少
虽然PeeWee提供了基本的ORM功能,但与其他一些功能更丰富的ORM框架相比,它的功能相对较少,这可能会限制它在一些复杂项目中的应用。
注意,以上优缺点是基于一般情况的概述,并不能完全代表所有使用PeeWee库的项目和开发者都会遇到相同的问题,在选择使用PeeWee之前,建议根据项目需求和个人偏好进行权衡和评估。
3-3、功能
Peewee库是一个轻量级的Python对象关系映射(ORM)库,用于在Python应用程序中与数据库进行交互,它提供了许多有用的功能,使数据库操作变得更加简单和高效。以下是Peewee库的主要功能:
3-3-1、定义数据库模型
使用Peewee库,你可以通过定义Python类来定义数据库中的表结构和字段,这使得数据结构和关系更容易管理,同时也提高了代码的可读性和可维护性。
3-3-2、数据库连接和管理
Peewee提供了用于连接和管理数据库的功能,你可以指定数据库引擎、主机、端口、用户名、密码等信息来连接到数据库,一旦连接建立,你就可以执行各种数据库操作。
3-3-3、执行CRUD操作
Peewee提供了用于执行创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作的方法,你可以使用这些方法轻松地插入新数据、查询数据、更新数据和删除数据。
3-3-4、强大的查询构建器
Peewee提供了一个强大的查询构建器,允许你以自然的方式构建复杂的数据库查询,你可以使用条件、排序、限制和连接等操作来精确地获取所需的数据,这使得查询过程更加直观和易于理解。
3-3-5、支持多种数据库后端
Peewee支持多种关系型数据库后端,包括SQLite、MySQL、PostgreSQL等,这使得你可以根据项目需求选择适合的数据库,同时也为数据库的迁移和扩展提供了方便。
3-3-6、数据迁移
Peewee支持数据库迁移,能够轻松地更新数据库模型和结构,这使得在数据库模式发生变化时,能够轻松地更新数据库并保持数据的完整性。
3-3-7、性能优化
Peewee经过精心设计,以确保在处理大量数据时也能保持高性能,它采用了多种优化策略,如缓存查询结果、减少数据库访问次数等,以提高数据库操作的效率。
除了上述主要功能外,Peewee还提供了其他一些有用的功能,如事务管理、关系处理、索引和约束等,这些功能使得Peewee成为一个功能强大且易于使用的工具,适用于各种类型的Python项目。
4、SQLAlchemy
4-1、由来
SQLAlchemy是Python编程语言下的一款开源软件,由迈克尔·拜尔(Michael Bayer)等人开发,它首次发行于2006年2月,并迅速成为Python社区中最广泛使用的ORM(对象关系映射)工具之一。
SQLAlchemy的主要目标是采用简单的Python语言,为高效和高性能的数据库访问设计,实现完整的企业级持久模型,通过SQLAlchemy,用户能够轻松地连接到各种关系型数据库(如MySQL),并对其中的数据表结构进行操作,包括创建、修改和查询数据库表。此外,SQLAlchemy还提供了丰富的数据类型和操作方法,方便用户以面向对象的方式操作数据库中的数据。
总之,SQLAlchemy作为Python编程语言下的一款重要第三方库,其由来可以追溯到其创始人迈克尔·拜尔等人的努力,以及Python社区对高效、高性能数据库访问需求的不断追求。
4-2、优缺点
SQLAlchemy库作为Python中广泛使用的对象关系映射(ORM)工具,其主要的优缺点有:
4-2-1、优点
4-2-1-1、易用性
SQLAlchemy提供了简洁易懂的API,使得开发者能够轻松地定义数据库模型、执行查询和更新操作。
4-2-1-2、灵活性
SQLAlchemy支持多种数据库后端,包括MySQL、PostgreSQL、SQLite等,并提供了大量的配置选项,允许开发者根据自己的需求定制数据库访问层。
4-2-1-3、对象关系映射(ORM)
ORM使得开发者能够用Python对象直接表示和操作数据库中的记录,无需编写大量的SQL语句,这大大提高了开发效率,并降低了出错的可能性。
4-2-1-4、查询构建器
SQLAlchemy提供了强大的查询构建器,允许开发者以Pythonic的方式构建复杂的SQL查询,这使得查询语句更加直观、易于理解和维护。
4-2-1-5、事务管理
SQLAlchemy内置了事务管理机制,使得开发者能够轻松地管理数据库事务,确保数据的完整性和一致性。
4-2-1-6、性能优化
虽然ORM通常被认为在性能上不如原生SQL,但SQLAlchemy通过缓存、延迟加载等机制,以及支持原生SQL语句的执行,可以在一定程度上优化性能。
4-2-1-7、扩展性
SQLAlchemy支持扩展和插件机制,允许开发者根据自己的需求定制和扩展其功能。
4-2-2、缺点
4-2-2-1、学习曲线
虽然SQLAlchemy提供了丰富的功能和灵活的配置选项,但这也意味着它的API较为复杂,学习曲线相对陡峭,初学者可能需要花费一些时间来熟悉和掌握其用法。
4-2-2-2、性能开销
与原生SQL相比,ORM通常会有一定的性能开销,这是因为ORM需要在Python对象和数据库记录之间进行映射和转换,对于大数据量和高并发的应用场景,这可能会成为瓶颈。
4-2-2-3、调试困难
由于ORM将数据库操作封装在Python对象中,因此在调试时可能会遇到一些困难,开发者需要熟悉ORM的内部机制和SQL语句的执行过程,以便找到并解决问题。
4-2-2-4、代码冗余
在某些情况下,使用ORM可能会导致代码冗余。例如,当需要频繁执行相同的SQL查询时,直接使用原生SQL语句可能更加简洁和高效。
注意,以上优缺点并非绝对,它们可能会因具体的应用场景和团队需求而有所不同,在选择是否使用SQLAlchemy时,需要根据项目的实际情况进行权衡和考虑。
4-3、功能
SQLAlchemy库是一个功能强大的SQL工具包和对象关系映射(ORM)系统,用于Python应用程序,它提供了一套完整的解决方案,使开发者能够使用Python类和数据库表进行交互,而无需编写大量的SQL代码,其主要功能有:
4-3-1、对象关系映射(ORM)
SQLAlchemy允许开发者定义Python类,这些类会映射到数据库中的表,开发者可以使用Python类的实例来代表数据库表中的行,并通过这些实例来查询、更新和删除数据。ORM系统还负责处理Python数据类型和数据库数据类型之间的转换。
4-3-2、查询构建器
SQLAlchemy提供了一个查询构建器API,允许开发者以Pythonic的方式构建SQL查询,查询可以包括各种条件、排序、分组、连接等操作,并且可以通过链式调用方法来构建复杂的查询。
4-3-3、关系管理
SQLAlchemy支持数据库中的各种关系,如一对一、一对多和多对多关系,开发者可以在Python类之间定义这些关系,并通过这些关系来执行跨表的查询和更新操作。
4-3-4、会话管理
SQLAlchemy使用会话(Session)对象来管理数据库连接和事务,会话对象提供了一个暂存区,用于存储待提交的更改,并允许开发者在单个事务中执行多个操作,提交会话将更改应用到数据库,而回滚会话将撤销待提交的更改。
4-3-5、数据库迁移
SQLAlchemy提供了Alembic这样的扩展库,用于处理数据库迁移,开发者可以使用Alembic来定义数据库模型的版本,并在模型发生更改时生成和执行迁移脚本,以更新数据库结构。
4-3-6、原生SQL支持
虽然SQLAlchemy的主要目标是提供ORM功能,但它也支持直接执行原生SQL语句,开发者可以使用SQLAlchemy的引擎(Engine)对象来执行SQL语句,并获取结果。
4-3-7、连接池
SQLAlchemy提供了连接池功能,用于管理和复用数据库连接,连接池可以提高应用程序的性能和响应速度,并减少与数据库建立连接的开销。
4-3-8、事件监听
SQLAlchemy支持事件监听机制,允许开发者在数据库操作的不同阶段注册回调函数,这些回调函数可以在对象加载、保存、删除等操作时执行自定义逻辑。
4-3-9、扩展性
SQLAlchemy具有高度的可扩展性,支持各种扩展和插件,开发者可以使用扩展库来增强SQLAlchemy的功能,如支持全文搜索、JSON字段等。
4-3-10、文档和社区支持
SQLAlchemy拥有完善的文档和活跃的社区支持,开发者可以方便地查找解决问题的方法和与其他开发者交流经验。
二、推荐阅读
1、Python函数之旅
2、Python算法之旅
3、博客个人主页
相关文章:

Python筑基之旅-MySQL数据库(二)
目录 一、第三方库 1、mysql-connector-python 1-1、由来 1-2、优缺点 1-2-1、优点 1-2-1-1、官方支持 1-2-1-2、纯Python实现 1-2-1-3、全面支持 1-2-1-4、兼容性 1-2-1-5、易于使用 1-2-2、缺点 1-2-2-1、性能 1-2-2-2、安装 1-2-2-3、社区支持 1-2-2-4、扩…...
web前端面试题
web前端面试题 1、前端如何实现优化性能 (1)减少网络时间 ①使用DNS缓存技术 ②减少需要传输的文件尺寸 ③加快文件传输速度 (2)减少发送的请求数量 ①利用浏览器缓存 ②使用合并的图片文件 (3)提高浏览器下载的并发度 ①JS文件放在HTML文档最后 ②使用多个域名 (…...

创建型模式之单例
文章目录 概述定义场景小结 概述 设计模式包括创建型模式,结构型模式,行为型模式。 今天先看看创建型模式,而单例是创建型模式中的第一个而且是常用的,就从它开始吧。 定义 单例模式用来创建全局唯一的对象。一个类只允许创建一…...
在 Next.js 应用中创建ContactForm表单提交
在 Next.js 应用中创建表单提交涉及几个关键步骤,包括设置表单、处理表单提交以及管理服务器端或 API 逻辑。以下是使用 Next.js 开发一个简单表单提交的步骤。 1. 设置表单组件 首先,创建一个表单组件。在这个例子中,我们将创建一个 Conta…...
HTML5 3D图像应用
目录 关键技术与规范应用示例与领域相关工具与框架HTML5 3D图像应用是利用HTML5、CSS3、JavaScript(及其相关的库和框架)以及其他现代Web技术(如WebGL)构建的,能够在浏览器中呈现三维图形、动画和交互式场景的应用程序。以下是一些关于HTML5 3D图像应用的关键点和示例: …...
SQL——DML对表中数据的操作
# 创建数据库 create database if not exists db_BigData default character set gb2312 default collate gb2312_chinese_ci; # 创建表 create table if not exists db_BigData.stu (id int auto_increment primary key comment 主键ID,name var…...

深度学习之基于Matlab卷积神经网络(CNN)手写数字识别
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 手写数字识别是计算机视觉领域的一个重要问题,也是深度学习应用的一个典型场景。卷…...

工业4.0 企业级云MES全套源码,支持app、小程序、H5、台后管理端
工业4.0 企业级云MES全套源码,支持app、小程序、H5、台后管理端 采用javaspringboot-vue.jsuniapp开发 随着工业4.0的快速发展,制造执行系统(MES)成为了智能制造的核心。今天,将为大家介绍一款开源的MES系统——MES管…...

Science| 单体耦合纤维实现无芯片纺织电子(纤维器件/智能织物/柔性可穿戴电子)
东华大学Hongzhi Wang,Chengyi Hou和Qinghong Zhang团队在《Science》上发布了一篇题为“Single body-coupled fiber enables chipless textile electronics”的论文。论文内容如下: 一、 摘要 智能纺织品为将技术融入日常生活中提供了理想的平台。然而,目前的纺织电子系统…...

前端面试项目细节重难点(已工作|做分享)
面试官提问:需求场景:页面上有一个单选框,有是否两个选项:当用户选择是,出现一个输入框,用户可以输入内容,给后端的保存接口传入参数radio和content这两个字段,值分别是用户选项和输…...

ASTGCN 论文学习下
文章目录 4.4.2 时间注意力4.4.2 计算示例 4.5 空间-时间卷积4.5.1 空间维度上的图卷积4.5.2 时间维度上的图卷积4.5.3 空间-时间卷积模块总结 4.6 多组件融合 5 实验5.1 数据集5.1.1 PeMSD45.1.2 PeMSD8 5.2 数据预处理5.3 实验设置5.4 基线模型5.5 比较与结果分析5.5.1 主要发…...

【面经】单片机
1、单片机IO口工作方式 输入 模拟输入(GPIO_Mode_AIN):关闭施密特触发器,将电压信号传送到片上外设模块,通常用于连接模拟信号源。浮空输入(GPIO_Mode_IN_FLOATING):在浮空输入状态…...

基于manifest文件批量将coding的仓库导入gitlab中
文章目录 写在前面的话背景编写manifest文件最终效果 写在前面的话 前面有讲过通过manifest清单导入项目到gitlab中,但是实际的操作是不同gitlab实例之间的操作,然而对于在不同gitlab实例的repo迁移而言,显然direct transfer会更合适。 背景…...

【数据结构】——顺序表与链表
顺序表与链表 线性表顺序表链表链表的概念链表的分类不带头单向非循环链表的实现带头双向循环链表的实现顺序表与链表的区别 线性表 线性表是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构。 常见的线性结构:顺序表、链表、栈、队…...
C++简洁版全排列代码
《代码随想录》在回溯章节中的全排列代码模板较为复杂,其实还有一种常用写法,思路是交换元素位置后做dfs(),并回溯。对应leetcode46题。 class Solution { public:vector<vector<int>> res;void dfs(vector<int>num, int k){// k代表…...

2024电工杯B题保姆级分析完整思路+代码+数据教学
2024电工杯B题保姆级分析完整思路代码数据教学 B题题目:大学生平衡膳食食谱的优化设计及评价 接下来我们将按照题目总体分析-背景分析-各小问分析的形式来 总体分析: 题目要求对两份一日膳食食谱进行营养分析和调整,然后设计优化的平衡膳…...

基于svm的水果识别
1、程序界面介绍 该程序GUI界面包括待检测水果图片加载、检测结果输出、清空可视化框等。其中包括训练模型、加载图片、重置、识别检测按钮。 程序GUI界面 识别玉米识别西瓜 分类器识别水果基本原理: 由于每种水果的外形存在很大差异,比如西瓜与玉米&…...
【DevOps】深入理解 Nginx Location 块:配置示例与应用场景详解
目录 一、location 块的基本概念 二、location 块的语法 三、location 块的匹配方式 四、location 块的优先级 五、location 块的应用场景 六、location 块的嵌套 七、location 块的指令 八、示例配置 Nginx 是一个高性能的 Web 服务器和反向代理服务器,它广…...

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(十一)
本系列课程,将重点讲解Phpsploit-Framework框架软件的基础使用! 本文章仅提供学习,切勿将其用于不法手段! 接上一篇文章内容,讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 我们,继续讲一…...
未来机器人的发展方向
未来机器人的发展方向是多元化且充满潜力的。以下是一些主要的发展方向: 人工智能与机器学习的集成:随着人工智能(AI)和机器学习(ML)技术的不断进步,机器人将变得更加智能化和自主化。这些技术将…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...