Python 的 cmd
模块本身并不是为数据库操作设计的,但它可以用于执行任何 Python 命令,包括与数据库进行交互的命令。如果你想在命令行中使用 Python 来操作数据库,你可以使用特定的数据库驱动程序或库,如 sqlite3
(用于 SQLite 数据库)、pymysql
(用于 MySQL 数据库)或 psycopg2
(用于 PostgreSQL 数据库)等。
以下是一些示例,展示了如何使用 Python 的 cmd
模块与不同类型的数据库进行交互:
SQLite 示例
import sqlite3 import cmd class SQLiteCmd(cmd.Cmd): prompt = 'sqlite> ' def do_create(self, arg): conn = sqlite3.connect('example.db') c = conn.cursor() c.execute(arg) conn.commit() conn.close() print('Table created.') def do_insert(self, arg): conn = sqlite3.connect('example.db') c = conn.cursor() values = arg.split(',') c.execute("INSERT INTO mytable (col1, col2) VALUES (?, ?)", values) conn.commit() conn.close() print('Record inserted.') def do_select(self, arg): conn = sqlite3.connect('example.db') c = conn.cursor() c.execute(arg) rows = c.fetchall() for row in rows: print(row) conn.close() def do_exit(self, arg): print('Exiting.') return True if __name__ == '__main__': SQLiteCmd().cmdloop()
MySQL 示例
import pymysql import cmd class MySQLCmd(cmd.Cmd): prompt = 'mysql> ' def do_connect(self, arg): conn = pymysql.connect(host='localhost', user='user', password='password', db='database') self.conn = conn print('Connected.') def do_create(self, arg): with self.conn.cursor() as cursor: cursor.execute(arg) self.conn.commit() print('Table created.') def do_insert(self, arg): with self.conn.cursor() as cursor: values = arg.split(',') cursor.execute("INSERT INTO mytable (col1, col2) VALUES (%s, %s)", values) self.conn.commit() print('Record inserted.') def do_select(self, arg): with self.conn.cursor() as cursor: cursor.execute(arg) rows = cursor.fetchall() for row in rows: print(row) def do_exit(self, arg): print('Exiting.') self.conn.close() return True if __name__ == '__main__': MySQLCmd().cmdloop()
PostgreSQL 示例
import psycopg2 import cmd class PostgreSQLCmd(cmd.Cmd): prompt = 'postgres> ' def do_connect(self, arg): conn = psycopg2.connect(host='localhost', user='user', password='password', dbname='database') self.conn = conn print('Connected.') def do_create(self, arg): with self.conn.cursor() as cursor: cursor.execute(arg) self.conn.commit() print('Table created.') def do_insert(self, arg): with self.conn.cursor() as cursor: values = arg.split(',') cursor.execute("INSERT INTO mytable (col1, col2) VALUES (%s, %s)", values) self.conn.commit() print('Record inserted.') def do_select(self, arg): with self.conn.cursor() as cursor: cursor.execute(arg) rows = cursor.fetchall() for row in rows: print(row) def do_exit(self, arg): print('Exiting.') self.conn.close() return True if __name__ == '__main__': PostgreSQLCmd().cmdloop()
这些示例展示了如何使用 Python 的 cmd
模块创建一个简单的命令行界面,用于执行数据库操作。你可以根据需要扩展这些示例,添加更多的命令和功能。