タイトルには、PythonとMySQLに関するいくつかの助けが必要です。私は現在Pythonをさらに研究しており、データベース設計、開発、管理、アプリケーションにPythonとMySQLを使用することに熱心に取り組んでいます。私はPythonのmysqlデータベースオブジェクトの使用に関するアドバイスが必要です
私はMySQLに精通していて、Pythonにはなじみがあります。現在、私はオブジェクト指向プログラミングに取り組んでおり、データベースクラス内でデータベース接続を設定し、そのクラスを使用してデータの作成、更新、削除、および読み込みを行っています。私が知りたい
import pymysql as MySQL
class Database(object):
Host = "127.0.0.1"
Database = "****"
user = "****"
password = "****"
@staticmethod
def initialize():
currentdb = MySQL.connect(Database.Host, Database.user, Database.password, Database.Database)
cursor = currentdb.cursor()
@staticmethod
def insert(Table, DataDict):
placeholders = ", ".join(["%s"] * len(DataDict))
columns = ", ".join(DataDict.keys())
sql = "INSERT INTO %s (%s) VALUES (%s)"%(Table, columns, placeholders)
cursor.execute(sql, DataDict.values())
、どのように私は、オブジェクトの内側にカーソルで動作します:
私は新しいPythonオブジェクトを作成していますか?私の現在のアプローチが、どのように処理すべきかにも近いのかどうかは分かりません。本当にわかりません。
上記のようにカーソルを初期化してから、上記の抽出で意図したとおりにオブジェクトでさらに使用できますか?
ご協力いただければ幸いです。
あなたのdefsが 'Database'クラスの一部として字下げされ、' self'を継承するべきではありませんか? –
初期化と挿入の2つのメソッドをクラス内で定義する必要があります。現在、クラス外にあり、insertメソッドは、initializeメソッドで作成したカーソルオブジェクトを参照できません。あなたが問題を見ることができるように私はしばらくのうちに回答を掲示します。 –
注: '@ staticmethod'を複数回(通常は一度でも)使用していると思う場合は、自分のアーキテクチャについてもっと考える必要があります。完全なクラスであれば、クラスの外にあるプレーン関数です。 – 9000