ホームページ >バックエンド開発 >Python チュートリアル >DjangoのORMによるデータベース操作方法を詳しく解説

DjangoのORMによるデータベース操作方法を詳しく解説

小云云
小云云オリジナル
2018-05-18 14:14:482723ブラウズ

この記事では、主に ORM に基づいて Django がデータベースを操作する方法を紹介し、Django が ORM を使用してデータベースを操作する際の関連する設定、追加、削除、変更、クエリをサンプルの形でまとめて分析します。参考にしていただければ幸いです。 databaseddirectory

rreee

(ブログと記事)を構成します。 4. ブログを例として、モデルを作成します

vim settings #HelloWorld/HelloWorld目录下
DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.mysql', #mysql数据库中第一个库test
    'NAME': 'test',
    'USER': 'root',
    'PASSWORD': '123456',
    'HOST':'127.0.0.1',
    'PORT':'3306',
  },
  'article': {
    'ENGINE': 'django.db.backends.mysql', # mysql数据库中第二个库test2
    'NAME': 'test2',
    'USER': 'root',
    'PASSWORD': '123456',
    'HOST':'127.0.0.1',
    'PORT':'3306',
  }
}

5. モデルをデータベースに同期します

python manage.py merge ##Django システムテーブルを作成し、初めて実行します

python manage。 py makemigrations ##移行を生成する 計画を立て、テーブルまたはフィールドを追加するたびに生成された計画を実行します

python manage.py merge ##ユーザー定義テーブルを同期しますvim models.py #ブログ ディレクトリに、新しいテーブルを作成しますテスト中は、いくつかのフィールドを追加、変更、削除できます

django-admin.py startapp blog ##HelloWorld/目录下建立网站app,我建了两个app(blog和article)

6. 複数のデータベースの使用。上記のブログ アプリケーションはデータベース内のテスト ライブラリに対応し、test2 ライブラリを使用してアプリケーション記事を構築します。このようなプロジェクト内の 2 つのアプリケーションは、異なるライブラリを使用します。

上記の記事アプリケーションを作成し、settings.py の DATABASES 項目にある対応するデータベースを test2 になるように構成しました。記事名の名前は一貫している必要があることに注意してください。

cdarticle #記事ディレクトリに入る

vim models.py #記事ディレクトリの下

vim settings ##/HelloWorld/HelloWorld目录下

python manage.py makemigrationsarticle ##同期計画を生成

##記事アプリケーションの同期を実行し、記事と同期します(での設定)設定、対応する test2) を対応するデータベースに追加します。Python 移行記事 --database 記事 ##実行プランでは、同期するライブラリを指定するために --database を追加する必要があります

7: 複数のアプリケーションが次を使用して構成されています。ただし、アプリケーションが複数のデータベースを使用する場合があるため、この手順でそれらを構成します。

INSTALLED_APPS = [
  'django.contrib.admin',
  'django.contrib.auth',
  'django.contrib.contenttypes',
  'django.contrib.sessions',
  'django.contrib.messages',
  'django.contrib.staticfiles',
  'blog',
  'article',
]
vim models.py ##blog目录下
from django.db import models
# Create your models here.
class Teacher(models.Model):
  id = models.IntegerField(primary_key=True)
  name = models.CharField(max_length=50)
  class Meta:
    db_table = 'teacher'#默认库test中建立名为teacher的表。字段就是id和name

8. ブログを例として、データベースの操作を開始します


データベース操作

その他の操作:​​ 追加、削除、変更、クエリ、および並べ替えのグループ化操作は自分でクエリできます。下の画像へ

9. 別のデータベースの操作方法test2

class Student(models.Model):
  id = models.IntegerField(primary_key=True)
  name = models.CharField(max_length=50)
  student_number = models.CharField(default="",max_length=50)
  class Meta:
    db_table = 'student'
from django.db import models
class Author(models.Model):
 id = models.IntegerField(primary_key=True)
 name = models.CharField(max_length=50)
 author_ids = models.CharField(max_length=50)
 class Meta:
   db_table = 'author'
   app_label = 'article' ##对应的article这个应用,名字要一致
rree
cd blog #进入blog目录下
vim models.py ##blog目录下,在文件中增加一个表,注意后边app_label
次に、手順8と同様にデータベースを操作すると、対応するデータベースが自動的にルーティングされます
class Group(models.Model):
  id = models.IntegerField(primary_key=True)
  group_name = models.CharField(max_length=50)
  class Meta:
    db_table = 'group'
    app_label = 'article' ##必须指定这个库
python manage.py makemigrations article ##生成同步计划,虽说改的是blog
python migrate article --database article ##执行计划,虽说改的是blog

10.単一ライブラリ (1 ペア 1、多対 1、多対多)。必要に応じてビデオをご覧ください。外部キーはあまり使いたくない

11. Django は Kwaku のテーブルリンク操作をサポートしていないため、ORM をバイパスする方法を使用する必要があります。概要ドキュメントを参照してください

概要:

単純な操作には ORM を使用し、複雑な操作には ORM をバイパスします。

以上がDjangoのORMによるデータベース操作方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。