ORM モデル フレームワークを使用して MySQL データベースを操作する方法

ORM モデル フレームワークを使用して MySQL データベースを操作する方法

ORM とは何ですか?

ORM は Object Relational Mapping の略で、オブジェクト リレーショナル マッピングを意味します。一般的には、プログラミング言語の仮想データベースとして理解できます。

ORMを理解する

ユーザーアドレス情報データベーステーブルとオブジェクト間のマッピング

【ORMの重要な特徴】

1. オブジェクト指向プログラミングの概念、拡張が容易

2. 開発効率を向上させるためにSQLを少なく(ほとんど書かない)

3. さまざまな種類のデータベース(一般的に使用されるmysql、pg、oracleなど)をサポートし、簡単に切り替えることができます。

4. ORM技術はすでにかなり成熟しており、ほとんどの問題を解決できる

[ORMモデルフレームワークの選択]

SQLAlchemy ORM モデル

ご存知のとおり、選択できる ORM フレームワーク モデルは多数あるため、ここでは SQLAlchemy モデル フレームワークを選択しました。

pip install SQLAlchemy install sql alchemy; バージョン番号を指定することもできます pip install SQLAlchemy ==1.4.17

import sqlalcherm; sqlalchemy.__version__; インストールが成功したかどうかとバージョン番号を確認します。

[SQL Alchemy の使用]

1. データベースへの接続を開始する 2. ORM モデル基本クラスを宣言する 3. ORM モデルクラスを実装する 4. データベーステーブルを同期する

データベースへの接続を開始する

  • 遅延接続 - 実際にデータベースを操作するときのみデータベースに接続します
  • 接続コードの例
sqlalchemyからcreate_engineをインポート

create_engine("mysql://root:@127.0.0.1:3306/school?charset=utf8,echo=True,future=True")

create_engine パラメータの説明

  1. url (デフォルトの最初のパラメータ) - mysql などの接続先のデータベースの種類、データベースへの接続に使用するデータベース コネクタ (ドライバ)
  2. echo——ログ情報を出力するかどうか。すべてのログが出力されます
  3. 将来はSQLAlchemy 2.0 APIスタイルを使用する

SQLAlchemy の設定

パスワードに特殊文字が含まれている場合はどうすればいいですか?

さっそく、以下のコードをご覧ください

urllib.parse から quote_plus をインポートします
パスワードに特殊文字が含まれている場合は、それを処理するためのクラスをインポートする必要があります。 password_formatted = quote.plus("mima%&&&mima")
処理されたパスワードを上記の sqlalchemy 設定に貼り付けます。

ORMモデル基本クラスを宣言する

sqlalchemy.orm から declarative_base をインポートします

この基本クラスを宣言します Base = declarative_base()

ORMモデルクラスの実装

どうやってそれを達成するのでしょうか? それを継承するクラスを作成する必要があります。

次に1つの属性を設定する必要があります

sqlalchemy から列、整数、文字列、日付時刻をインポートします


クラス Student(Base):
    「学生情報フォーム」
    __tablename__ = '学生'
    id = 列(整数、名前='id'、主キー=True)
    stu_no = 列(整数、nullable=False、コメント='学生番号')
    stu_name = 列(文字列(16)、nullable=False、コメント='name')
    created_at = 列(日時)

1. 同期する前にデータベースが存在することを確認する必要があります。存在しない場合は、手動で作成する必要があります。

2 テーブルの作成、テーブルの削除

orm_connect_exampleからBase、engineをインポートします

# テーブルを作成する Base.metadata.create_all(engine)

#テーブルを削除する Base.metadata.drop_all(engine)

[ORMに対応するモデルフィールドタイプ]

コード例

sqlalchemyからcreate_engineをインポート
sqlalchemy.orm から declarative_base をインポートします
sqlalchemy から列、整数、文字列、日付時刻をインポートします

# 最初のステップは接続の準備です engine = create_engine('mysql://root:@10.72.100.1:8081/test_database_1?charset=utf8',echo=True)

# ステップ 2: ORM モデルの基本クラスを宣言する Base = declarative_base()


# 3 番目のステップは、ORM モデル クラス class Student(Base) を実装することです。
    「学生情報フォーム」
    __tablename__ = '学生'
    id = 列(整数、名前='id'、主キー=True)
    stu_no = 列(整数、nullable=False、コメント='学生番号')
    stu_name = 列(文字列(16)、nullable=False、コメント='name')
    created_at = 列(日時)
#4番目のステップは、データベーステーブルを同期することです。def create_table()
    「データベース テーブルを同期する」
    # 新しいテーブルを作成する Base.metadata.create_all(bind=engine)
    # テーブルを削除する Base.metadata.drop_all(bind=engine)

ORM モデル フレームワークを使用して MySQL データベースを操作する方法についての記事はこれで終わりです。ORM モデル フレームワークに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Laravel フレームワーク Eloquent ORM の紹介、モデル構築、データクエリ操作の詳細な説明
  • Django フレームワーク オブジェクト指向 ORM モデル継承の使用例分析
  • MySqlはDATE_FORMATを使用してDateTimeフィールドの日付値をインターセプトします。
  • mysql データベース内の information_schema と mysql を削除できますか?

<<:  VMware で Nginx+KeepAlived クラスタ デュアルアクティブ アーキテクチャを展開する際の問題と解決策

>>:  フレックスレイアウトでコンテナ内のコンテンツを維持するためのソリューションの詳細な説明

推薦する

Docker プルタイムアウトの解決策

最近、Docker イメージのプルが非常に不安定です。遅く、タイムアウトすることがよくあります。 x...

Linux システム ディレクトリ sys、tmp、usr、var の詳細な説明。

Linux 初心者から Linux マスターへの成長の道: Linux システム ディレクトリ s...

TypeScript の基本型の紹介

目次1. 基本タイプ2. オブジェクトタイプ2.1 配列2.2 タプル2.3 オブジェクト3. 型推...

Vue3ライフサイクル関数とメソッドの詳細な説明

1. 概要いわゆるライフサイクル機能とは、特定の条件下で自動的にトリガーされる機能です。 2. VU...

vue-cli で stimulsoft.reports.js を使用する詳細なチュートリアル

vue-cli は stimulsoft.reports.js を使用します (ナニーレベルのチュー...

MySQL の datetime フィールドの丸め操作

目次序文1. 背景2. シミュレーションテスト3. 結論要約する序文もし私が罠に陥っていなかったら、...

CSS3 で作成された背景グラデーションアニメーション効果

成果を達成する 実装コードhtml <h1 class="text-light&qu...

ベースタグとは何ですか? また、それは何をするのですか?

<base> タグは、ページ上のすべてのリンクのデフォルトのアドレスまたはデフォルトの...

MySQL での r2dbc の使用に関する詳細な理解

導入MySQL は、私たちが日常業務で使用する非常に一般的なデータベースです。MySQL は現在 O...

Win7 システムでの MySQL 5.7.11 の詳細なインストール チュートリアル

オペレーティング システム: Win7 64 ビット Ultimate Edition MySQL ...

MySQLデータベースとテーブルシャーディングの概要

プロジェクトの開発中に、データベースのデータがどんどん大きくなり、その結果、1 つのテーブルにデータ...

MySQL をインストールするときに初期パスワードを忘れた場合のシンプルで効果的な解決策

MySQL をインストールすると初期パスワードが与えられますが、この初期パスワードは大文字と小文字の...

CSS でより美しいリンクプロンプト効果をカスタマイズする方法

提案: コードをできるだけ手書きすると、学習の効率と深さを効果的に向上できます。デフォルトでは、&l...

HTML ページ適応幅テーブル

WEB アプリケーションのページでは、テーブルがよく使用されます。列の数が限られているため、各列のコ...

JavaScript スコープチェーンの基本原理のグラフィカルな説明

目次序文範囲1. スコープとは何ですか? 2. [[スコープ]] プロパティ3. スコープチェーン4...