python实现链接数据库查询方法步骤

前言
在python项目开发中,我们经常使用多种数据库存储数据,常用的有:
MySQL:mysql-connector-python, PyMySQL
PostgreSQL:psycopg2
SQLite:sqlite3(标准库)
下面是一个通用的步骤示例,展示如何使用Python连接数据库并执行查询。这里我们以MySQL数据库为例,使用mysql-connector-python库。
步骤一:安装库
首先,确保你已经安装了mysql-connector-python库。如果没有安装,可以使用以下命令进行安装:
pip install mysql-connector-python
步骤二:连接数据库
接下来,编写代码来连接到数据库。
import mysql.connector
from mysql.connector import Error

def create_connection(host_name, user_name, user_password, db_name):
connection = None
try:
connection = mysql.connector.connect(
host=host_name,
user=user_name,
passwd=user_password,
database=db_name
)
print(“Connection to MySQL DB successful”)
except Error as e:
print(f"The error ‘{e}’ occurred")
return connection

步骤三:执行查询
定义一个函数来执行查询:
def execute_query(connection, query):
cursor = connection.cursor()
try:
cursor.execute(query)
connection.commit()
print(“Query executed successfully”)
except Error as e:
print(f"The error ‘{e}’ occurred")

步骤四:执行读取查询
定义一个函数来读取数据:
def execute_read_query(connection, query):
cursor = connection.cursor()
result = None
try:
cursor.execute(query)
result = cursor.fetchall()
return result
except Error as e:
print(f"The error ‘{e}’ occurred")
return None

步骤五:使用示例
使用上面定义的函数连接数据库并执行查询:

数据库连接信息

host_name = “your_host”
user_name = “your_username”
user_password = “your_password”
db_name = “your_database”

连接数据库

connection = create_connection(host_name, user_name, user_password, db_name)

创建表示例

create_table_query = “”"
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name TEXT NOT NULL,
age INT,
gender TEXT,
nationality TEXT
);
“”"
execute_query(connection, create_table_query)

插入数据示例

insert_user_query = “”"
INSERT INTO users (name, age, gender, nationality) VALUES
(‘James’, 25, ‘male’, ‘USA’),
(‘Leila’, 32, ‘female’, ‘France’);
“”"
execute_query(connection, insert_user_query)

查询数据示例

select_users_query = “SELECT * FROM users”
users = execute_read_query(connection, select_users_query)

for user in users:
print(user)

下面附上完整使用代码:

import mysql.connector
from mysql.connector import Error

def create_connection(host_name, user_name, user_password, db_name):
connection = None
try:
connection = mysql.connector.connect(
host=host_name,
user=user_name,
passwd=user_password,
database=db_name
)
print(“Connection to MySQL DB successful”)
except Error as e:
print(f"The error ‘{e}’ occurred")
return connection

def execute_query(connection, query):
cursor = connection.cursor()
try:
cursor.execute(query)
connection.commit()
print(“Query executed successfully”)
except Error as e:
print(f"The error ‘{e}’ occurred")

def execute_read_query(connection, query):
cursor = connection.cursor()
result = None
try:
cursor.execute(query)
result = cursor.fetchall()
return result
except Error as e:
print(f"The error ‘{e}’ occurred")
return None

数据库连接信息

host_name = “your_host”
user_name = “your_username”
user_password = “your_password”
db_name = “your_database”

连接数据库

connection = create_connection(host_name, user_name, user_password, db_name)

创建表示例

create_table_query = “”"
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name TEXT NOT NULL,
age INT,
gender TEXT,
nationality TEXT
);
“”"
execute_query(connection, create_table_query)

插入数据示例

insert_user_query = “”"
INSERT INTO users (name, age, gender, nationality) VALUES
(‘James’, 25, ‘male’, ‘USA’),
(‘Leila’, 32, ‘female’, ‘France’);
“”"
execute_query(connection, insert_user_query)

查询数据示例

select_users_query = “SELECT * FROM users”
users = execute_read_query(connection, select_users_query)

for user in users:
print(user)

这里在为大家展示一下实际项目中常用的model实例,类似于java中的实体:

class AlertStatistics(SurrogatePK, Model):
tablename = ‘alert_statistics’

high_count = Column(db.Integer, nullable=False, default=0)
middle_count = Column(db.Integer, nullable=False, default=0)
lower_count = Column(db.Integer, nullable=False, default=0)
handled_count = Column(db.Integer, nullable=False, default=0)
unhandled_count = Column(db.Integer, nullable=False, default=0)
alert_count = Column(db.Integer, nullable=False, default=0)
data1_count = Column(db.Integer, nullable=False, default=0)
data2_count = Column(db.Integer, nullable=False, default=0)report_date = Column(db.Date, nullable=False, default=0)
created_at = Column(db.DateTime, nullable=False, default=dt.datetime.now)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/35973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABAP ALV报表性能优化 经验总结

优化ALV报表,最主要就是优化取数逻辑和数据库查询。因为几乎在所有的程序中都会用到数据库查询,所以这篇文章的内容也不仅局限于SAP、ABAP程序,虽然ABAP有其特殊之处。 优化的时候我遵从以下几个原则: 1.把数据库连接视为一种极其…

CodeBlocks 导航栏/输出栏/菜单栏消失

参考地址:CodeBlocks 导航栏/输出栏/菜单栏消失_codeblocks工具栏没了-CSDN博客

Vivo手机怎么录屏?分享2种录屏方法

“新换的Vivo手机还挺好用的,但是今天看到一个视频想录下来保存,但找不到录屏功能啊,想问问大家Vivo手机的录屏功能怎么打开啊?还有Vivo手机能不能录制出高质量的视频呢?” 随着智能手机的普及,录屏功能已…

Redis 高并发缓存架构实战与性能优化

前置知识 1、缓存击穿、缓存失效的基本概念 2、什么样的 数据 需要加分布式锁 3、课上代码 05-一线大厂Redis高并发缓存架构实战与性能优化 对于 公司 中 简单的增删改查 做 高性能处理 , 采用递进的方式一步步优化。 普通Redis用法: 新增、修改、删…

Bazel构建工具介绍

Android开发我们主要用到的编译器是Java的Java编译器以及C/C++的gcc/clang编译器。对应Java层构建工具最初是Ant,后面Maven以及gradle;C/C++构建工具主要是make/cmake,做过系统开发或者chromeium,可能还用过ninjia、gclient、mm等。最近在编译Android平台的tensorflow lite…

Gobject tutorial 十一

参考:GObject – 2.0 Generic Value Container GValue结构体是一个变量容器,它包含一个类型成员和类型对应的值。其定义如下: /*** GValue:* * An opaque structure used to hold different types of values.** The data within the structure has pr…

ChatTTS源码部署

感谢阅读 默认已完成的操作准备工作下载源码安装依赖下载补丁(报错在运行) 界面展示(discord上有各种补丁,我的加了UI补丁和音色增强)提示词常用(这个每个音基本都能生效)语调类语速类情感类 默认已完成的操作 python版本>3.9 cuda版本的…

supersocket的app层源码解析

基础结构 #mermaid-svg-Q1MUtx0YWtvpRVNw {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Q1MUtx0YWtvpRVNw .error-icon{fill:#552222;}#mermaid-svg-Q1MUtx0YWtvpRVNw .error-text{fill:#552222;stroke:#552222;}#…

《化工管理》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《化工管理》是不是核心期刊? 答:不是,是知网收录的第一批认定学术期刊。 问:《化工管理》级别? 答:国家级。主办单位:中国石油和化学工业联合会 主管单位&…

国产操作系统上配置ssh互信 _ 统信 _ 麒麟 _ 中科方德

原文链接:国产操作系统上配置ssh互信 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇在国产桌面操作系统上配置SSH互信的文章。SSH(Secure Shell)是一种安全协议,用于在不安全的网络上安全地…

uniapp app分享页面到微信的功能方法

最近开发uniapp app项目时,有分享页面的功能需求,因此,给大家分享一下,在uniapp环境里,是如何分享页面到微信H5页面的。 如上图所示:app主体代码就是这样了,查看相应配置就可以,同时…

Swoole v6 能否让 PHP 再次伟大?

大家好,我是码农先森。 现状 传统的 PHP-FPM 也是多进程模型的的运行方式,但每个进程只能处理完当前请求,才能接收下一个请求。而且对于 PHP 脚本来说,只是接收请求和响应请求,并不参与网络通信。对数据库资源的操作…

图的最短路径算法:原理与实现

图的最短路径算法:原理与实现 在图论中,最短路径算法用于找到图中从一个顶点到另一个顶点的最短路径。常见的最短路径算法包括Dijkstra算法、Bellman-Ford算法和Floyd-Warshall算法。以下是每个算法的详细讲解及其Java实现。 1. Dijkstra算法 原理&am…

Android (已解决)Execution failed for task ‘:app:lint‘

文章目录 一、错误原因二、解决方法 一、错误原因 这个错误信息表示在执行 Lint 检查时发现了错误,导致构建过程被中断。Lint 是一个用于检测 Android 项目中潜在问题的工具,比如性能、安全性、可用性等方面的问题。当Lint检查到严重错误时,…

RabbitMQ如何保证消息可靠

解决办法: 1、做好消息确认机制(pulisher、consumer[手动ACK]) 2、每一个发送的消息都在数据库做好记录。定期将失败的消息再次发送一遍 消息确认机制: 生产者确认模式:确认消息是否发送到broker,失败…

20240627(26.4) 财经要闻汇总

重点关注 ► 发改委:我国金融规模体系已经很大了,但融资结构还有待改善。耐心资本的培育对于促进我国创业投资高质量发展和实现高水平科技自立自强至关重要。除了充分尊重市场规律以外,政府这只“有形的手”也可以发挥重要作用,引…

【FPGA-常见问题及解决方案】

1、VIVADO的License无法加载:license文件必须在英文路径; 2、例程代码路径不能过长,也不允许有中文路径!!! 3、明明加载了license,license也正确,例程无法完成综合:这种情…

“北京到底有谁在啊”影视APP开发,解锁最简单的快乐

随着电视剧《玫瑰的故事》在腾讯视频APP热播,APP也增加了很多热度,一款丰富的影视APP,无论是热门大片、经典影视剧、还是最新综艺节目,能畅享无限精彩的影视内容! 开发影视APP,需要专业的技术服务商来解决…

1500平方米气膜羽毛球馆的造价分析—轻空间

随着全民健身热潮的兴起,气膜羽毛球馆因其良好的空气质量、恒温恒湿的环境和快捷的建设速度,受到了越来越多人的欢迎。建造一个1500平方米的气膜羽毛球馆涉及多个方面的费用,包括场地准备、设备材料、安装施工、配套设施等。轻空间将详细分析…

【设计模式】【结构型7-1】【代理模式】【动态代理】【静态代理】

文章目录 代理模式静态代理第一步 创建接口第二步 创建需要代理的对象第三步 创建代理对象 使用 动态代理jdk动态代理cjlib动态代理 代理模式 代理 是结构型 通过继承,或者实现相同的接口来进行增强和监控 经典的使用 spring aop,mybatis dao层 静态代…