数据库连接轻松搞定:Python 数据库推荐
发布时间 : 2023-08-12 17:56
字数:892
阅读 :
SQLite3:轻巧便捷的数据库连接 首先,让我们认识一下 SQLite3 这个轻巧便捷的库。它是 Python 中自带的数据库模块,适用于小型应用和快速原型开发。
让我们来看看 SQLite3 的魔法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 import sqlite3conn = sqlite3.connect("mydatabase.db" ) cursor = conn.cursor() cursor.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)" ) cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)" , ("Alice" , 25 )) cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)" , ("Bob" , 30 )) cursor.execute("SELECT * FROM users" ) rows = cursor.fetchall() for row in rows: print (row) conn.close()
运行上述代码,你将看到插入的数据和查询结果输出在终端上,SQLite3 让数据库连接变得如此简单!
MySQL Connector:连接MySQL 接下来,我们要介绍 MySQL Connector 这个强大的库。它是用于连接 MySQL 数据库的官方驱动,适用于中小型应用和生产环境。
MySQL Connector 的安装非常简单,使用以下命令:
1 pip install mysql-connector-python
让我们看看 MySQL Connector 的魔法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import mysql.connectorconn = mysql.connector.connect( host="localhost" , user="root" , password="your_password" , database="mydatabase" ) cursor = conn.cursor() cursor.execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)" ) cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)" , ("Alice" , 25 )) cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)" , ("Bob" , 30 )) cursor.execute("SELECT * FROM users" ) rows = cursor.fetchall() for row in rows: print (row) conn.close()
运行上述代码,你将看到插入的数据和查询结果输出在终端上,MySQL Connector 让数据库连接变得如此高效!
SQLAlchemy:强大的ORM框架 最后,让我们来认识 SQLAlchemy 这个强大的库。它是 Python 中最流行的 ORM(Object-Relational Mapping)框架,适用于复杂的数据库操作和应用。
SQLAlchemy 的安装非常简单,使用以下命令:
让我们看看 SQLAlchemy 的魔法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 from sqlalchemy import create_engine, Column, Integer, Stringfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy.orm import sessionmakerengine = create_engine("sqlite:///mydatabase.db" , echo=True ) Base = declarative_base() class User (Base ): __tablename__ = "users" id = Column(Integer, primary_key=True ) name = Column(String) age = Column(Integer) Base.metadata.create_all(engine) Session = sessionmaker(bind=engine) session = Session() user1 = User(name="Alice" , age=25 ) user2 = User(name="Bob" , age=30 ) session.add_all([user1, user2]) session.commit() users = session.query(User).all () for user in users: print (user.name, user.age) session.close()
运行上述代码,你将看到插入的数据和查询结果输出在终端上,SQLAlchemy 让数据库操作变得如此高端!
数据库连接案例 下面我们来看一个实际应用的数据库连接案例:从 CSV 文件中读取数据并存储到数据库。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import csvconn = sqlite3.connect("mydatabase.db" ) cursor = conn.cursor() cursor.execute("CREATE TABLE IF NOT EXISTS books (id INTEGER PRIMARY KEY, title TEXT, author TEXT)" ) with open ("books.csv" , "r" ) as file: reader = csv.reader(file) next (reader) for row in reader: title, author = row cursor.execute("INSERT INTO books (title, author) VALUES (?, ?)" , (title, author)) cursor.execute("SELECT * FROM books" ) rows = cursor.fetchall() for row in rows: print (row) conn.close()
运行上述代码,你将看到读取的数据和查询结果输出在终端上,通过这样简单的数据库连接,你可以更好地管理和查询数据。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 richffan@outlook.com