在实际开发过程中,对于项目的数据查询和数据统计,那python是相当好用,相信很多后端工程师是java语言入门的,对于python呢是有一点陌生,我自己也是,不过当你操作起来呢发现其实还是蛮好上手的。以下就是一些简单的示例,大家可以参考一下。
环境:pycharm2023.1,python3.7,PostgreSQL13.1,MySql5.7.11
在Python中,对于数据库连接,你需要使用适当的数据库连接库(如sqlite3
、pymysql
、psycopg2
等),并配置连接参数(如数据库URL、用户名、密码等)。
- 在PyCharm的欢迎界面,选择“Create New Project”或者点击菜单栏中的“File” > “New Project”。
- 在弹出的窗口中,选择你想要的Python解释器版本(如果你已经安装了多个版本的话)。
- 为你的项目选择一个合适的目录位置,并输入一个项目名称。
- 点击“Create”按钮以创建新项目。
postgresql
以下是一个简单的示例,展示如何使用Python的psycopg2库连接到postgresql数据库,并创建一个数据源:
你可以创建一个专门连接这个数据源的脚本,比如创建一个db文件夹,新建python File,命名为pgsql_db_tool,
在固定的连接信息没有定义database是因为想灵活一点访问多个数据库,注意一下我这里的password有逗号。
import psycopg2
# 固定的连接信息(除了数据库名称)
CONNECTION_INFO = {
'host': 'pglocalhost',
'port': '3308',
'user': 'desmond',
'password': 'abcdefg',
}
def execute_query_in_db(db_name, query):
# 构建完整的连接信息
conn_info = CONNECTION_INFO.copy()
conn_info['database'] = db_name
# 连接到数据库
try:
conn = psycopg2.connect(**conn_info)
cur = conn.cursor()
# 执行查询
cur.execute(query)
# 获取查询结果
rows = cur.fetchall()
# 关闭游标和连接
cur.close()
conn.close()
# 返回查询结果
return rows
except (Exception, psycopg2.Error) as error:
print(f"Error: {error}")
return None
mysql
以下是一个简单的示例,展示如何使用Python的pymysql库连接到mysql数据库,并创建一个数据源:
你可以创建一个专门连接这个数据源的脚本,比如创建一个db文件夹,新建python File,命名为mysql_db_tool,
在固定的连接信息没有定义database是因为想灵活一点访问多个数据库,注意一下我这里的password有逗号。
import pymysql
config = {
'host': 'mysqllocalhost',
'port': 3306,
'user': 'desmond',
'password': 'abc123',
}
def execute_query_in_mysqldb(query, db_name):
conn_info = config.copy()
conn_info['database'] = db_name
try:
connection = pymysql.connect(**conn_info)
cursor = connection.cursor()
cursor.execute(query)
rows = cursor.fetchall()
connection.close()
cursor.close()
return rows
except (Exception, pymysql.Error) as error:
print(f"Error:{error}")
return None
示例用法
数据源写好之后我们就可以测试一下,简单查询一下相应连接的数据库,看看是否连接成功。
你也可以在写数据源的地方进行测试,我这里新建一个test文件夹和test.py进行测试mysql连接
from db import mysql_db_tool
mysql_db_name = "你mysql连接下数据库名称,注意了,是数据库不是表名"
sql = "select count(*) from 表名"
datas = mysql_db_tool.execute_query_in_mysqldb(sql, mysql_db_name)
if datas:
print(datas[0][0])