MySQLドライバのインストール:
私たちは、DjangoのMySQLの、基本的な事実やPythonによる操作を操作するために使用されます。だから私たちは、あなたがドライバをインストールする必要があり、すべての上に、MySQLを動作させるためにはDjangoを使用したいです。python3では、ドライバはさまざまなオプションがあります。例えば、これにはmysqlclientとがpymysql。ここでは、使用しmysqlclient
て動作します。mysqlclient
インストールは非常に簡単です。あなただけが必要なpip install mysqlclient
インストールします。
MySQLは、共通のドライブを導入しました:
MySQL-python
:それはMySQLdbはあります。これは、C言語のシンプルなパッケージMySQLデータベース操作です。PythonのDBのAPI v2のに従ってください。しかし、唯一のPython2をサポートするために、現在のpython3をサポートしていません。mysqlclient
:MySQLの-pythonの別の支店です。python3のサポートとは、いくつかのバグを修正します。pymysql
:純粋なPython実装をドライブ。それは純粋なPythonの、そのためのMySQL-pythonのより効率的なの実装で書かれているので。そしてまたなぜなら、それは純粋なPythonで書かれ、Pythonコードをシームレスにすることができます。MySQL Connector/Python
:純粋なPythonの接続MySQLを使用して、ドライブのMySQLの公式発表。それは純粋なPythonの開発があるので。効率性は高くありません。
Djangoの設定データベース接続:
データベースを操作する前に、まず最初にデータベースに接続する必要があります。ここでは、MySQLを設定するために説明するための例があります。Djangoのデータベース接続は、別の接続オブジェクトを作成する必要はありません。あなただけがする必要がありsettings.py
、それには良い仕事データベース関連のコンフィギュレーションファイルを実行します。次のようにサンプル・コードは次のとおりです。
DATABASES = {
'default': {
# 数据库引擎(是mysql还是oracle等)
'ENGINE': 'django.db.backends.mysql',
# 数据库的名字
'NAME': 'dfz',
# 连接mysql数据库的用户名
'USER': 'root',
# 连接mysql数据库的密码
'PASSWORD': 'root',
# mysql数据库的主机地址
'HOST': '127.0.0.1',
# mysql数据库的端口号
'PORT': '3306',
}
}
データベースのDjangoの動作では:
2つの方法で、Djangoのデータベース操作で。最初の方法は、ネイティブのオペレーティング・SQLステートメントを使用することで、第二は、動作させるためにORMモデルを使用することです。一種類のDirの面で最初のすべてのこのレッスン。
Djangoの操作でネイティブのSQLステートメントを使用すると、実際に動作するPythonのDBのAPIインタフェースを使用しています。あなたはmysqlの駆動pymysqlを使用している場合は、動作するようpymysqlを使用しているが、これは限り私たちはDjangoのパッケージの後に直接使用settings.pyのデータベース接続情報で構成されているように、よくパッケージDjangoのデータベース接続の一部となります良いインターフェイスはアップして動作することができます。次のようにサンプル・コードは次のとおりです。
# 使用django封装好的connection对象,会自动读取settings.py中数据库的配置信息
from django.db import connection
# 获取游标对象
cursor = connection.cursor()
# 拿到游标对象后执行sql语句
cursor.execute("select * from book")
# 获取所有的数据
rows = cursor.fetchall()
# 遍历查询到的数据
for row in rows:
print(row)
上記はfetchAllとPython DB APIメソッドは、仕様で定義されて実行されます。MySQLを操作するためのPythonを使って任意のドライバは、このに従ってください。それはpymysqlはmysqlclientかのMySQLdbを使用しているかであるかどうかので、そのインターフェイスは同じです。:より多くの仕様についてを参照してくださいhttps://www.python.org/dev/peps/pep-0249/。
カーソルオブジェクトのAPIのPython DB下の共通インタフェース仕様:
-
description
:カーソル問合せは、SQLコードを実行された場合。だから、読んでcursor.description
タプルがロードされたリストを返すときに、プロパティを、タプルがそれぞれ設置されている(name,type_code,display_size,internal_size,precision,scale,null_ok)
名前は、データ、有用ではない他のパラメータを見つけるために、フィールドの名前を表し、。 -
rowcount
:これは、影響を受けたSQL文を実行した後の行数を表します。 -
close
:カーソルを閉じます。カーソルを閉じた後、もはやそれ以外の場合は、例外がスローされます、使用することはできません。 -
execute(sql[,parameters])
:SQL文を実行します。あなたは、SQL文の実行にパラメータを渡す必要がある場合は、パラメータのパラメータを渡すことができます。次のようにサンプル・コードは次のとおりです。cursor.execute("select * from article where id=%s",(1,))
-
fetchone
第1のデータを取得し、クエリを実行した後。 -
fetchmany(size)
:検索操作を実行した後、データの部分を取得します。具体的にどのように多くは、サイズパラメータのパスに依存します。あなたはサイズパラメータを渡さない場合は、デフォルトでは最初のデータを得ることです。 -
fetchall
:すべて満たすSQL文データを取得します。