想用 Python 连接数据库?说实话,一开始我也觉得挺复杂的。但其实掌握了几个关键点,你会发现这玩意儿比想象中简单得多。就像搭积木,找到正确的块,咔哒一声就成了。
首先,得选个数据库。现在流行的数据库不少,MySQL、PostgreSQL、SQLite,还有 MongoDB 这种 NoSQL 的。我个人比较喜欢用 PostgreSQL,因为它开源、免费、功能强大。当然,选哪个取决于你的项目需求,没必要死磕。
选好数据库之后,接下来就是安装对应的 Python 驱动。这个很重要!相当于 Python 和数据库之间的翻译器。比如,如果你用的是 MySQL,那就需要安装 mysql-connector-python
;如果是 PostgreSQL,就安装 psycopg2
。安装方法很简单,打开你的终端,输入 pip install psycopg2
或者 pip install mysql-connector-python
就行了。
好了,驱动装好了,接下来就是连接数据库了。连接数据库需要一些信息,比如数据库的地址(host)、端口号(port)、用户名(user)、密码(password)以及数据库名(database)。这些信息都可以在你的数据库配置里找到。
连接代码大概是这样的(以 PostgreSQL 为例):
“`python
import psycopg2
数据库连接信息
db_host = “localhost”
db_port = “5432”
db_user = “your_username”
db_password = “your_password”
db_database = “your_database”
try:
# 建立数据库连接
conn = psycopg2.connect(
host=db_host,
port=db_port,
user=db_user,
password=db_password,
database=db_database
)
# 创建游标对象
cur = conn.cursor()
# 执行 SQL 语句
cur.execute("SELECT version();")
# 获取查询结果
db_version = cur.fetchone()
print(f"数据库版本: {db_version}")
# 关闭游标和连接
cur.close()
conn.close()
except Exception as e:
print(f”连接数据库失败: {e}”)
“`
这段代码的核心是 psycopg2.connect()
函数,它会尝试连接你的数据库。如果连接成功,就会返回一个连接对象 conn
。然后,我们需要创建一个游标对象 cur
,游标对象可以让我们执行 SQL 语句。
上面这段代码只是个简单的例子,它只是连接数据库,然后查询数据库的版本。实际应用中,我们需要执行更复杂的 SQL 语句,比如插入数据、更新数据、删除数据等等。
插入数据:
“`python
插入数据
sql = “INSERT INTO your_table (column1, column2) VALUES (%s, %s)”
values = (“value1”, “value2”)
cur.execute(sql, values)
conn.commit() # 提交事务
“`
更新数据:
“`python
更新数据
sql = “UPDATE your_table SET column1 = %s WHERE column2 = %s”
values = (“new_value”, “value2”)
cur.execute(sql, values)
conn.commit()
“`
删除数据:
“`python
删除数据
sql = “DELETE FROM your_table WHERE column1 = %s”
values = (“value1”,)
cur.execute(sql, values)
conn.commit()
“`
查询数据:
“`python
查询数据
sql = “SELECT * FROM your_table”
cur.execute(sql)
rows = cur.fetchall()
for row in rows:
print(row)
“`
注意,在执行插入、更新、删除操作之后,一定要调用 conn.commit()
提交事务。否则,你的修改不会生效。
还有一点需要注意,为了防止 SQL 注入攻击,最好使用参数化查询。就像上面代码中的 cur.execute(sql, values)
这样,把 SQL 语句和参数分开传递。
Python 连接数据库其实就是这么回事儿。掌握了这些基本操作,你就可以开始用 Python 和数据库进行愉快的玩耍了。当然,这只是个开始,还有很多高级技巧需要学习,比如连接池、事务管理等等。但万事开头难,只要你迈出了第一步,后面的路就会越走越顺。
对了,再补充一点。有时候,我们可能需要在代码中动态生成 SQL 语句。这时候,可以使用字符串格式化或者模板引擎。但一定要小心,避免 SQL 注入攻击。最好的方法还是使用参数化查询。
另外,数据库连接的关闭也很重要。一定要确保在程序结束时关闭连接,释放资源。可以使用 try...finally
语句来确保连接被正确关闭。
“`python
try:
# 连接数据库
conn = psycopg2.connect(…)
cur = conn.cursor()
# 执行 SQL 语句
...
except Exception as e:
print(f”发生错误: {e}”)
finally:
# 关闭游标和连接
if cur:
cur.close()
if conn:
conn.close()
“`
这样,即使在发生异常的情况下,也能保证连接被正确关闭。
学习 Python 连接数据库,最重要的是实践。多写代码,多调试,遇到问题多查资料,多思考。相信你很快就能掌握这门技能。加油!
评论(0)