ホームページ >バックエンド開発 >Python チュートリアル >DjangoのORMによるデータベース操作方法を詳しく解説
この記事では、主に 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 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
データベース操作
その他の操作: 追加、削除、変更、クエリ、および並べ替えのグループ化操作は自分でクエリできます。下の画像へ
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 ##执行计划,虽说改的是blog10.単一ライブラリ (1 ペア 1、多対 1、多対多)。必要に応じてビデオをご覧ください。外部キーはあまり使いたくない11. Django は Kwaku のテーブルリンク操作をサポートしていないため、ORM をバイパスする方法を使用する必要があります。概要ドキュメントを参照してください 概要:
単純な操作には ORM を使用し、複雑な操作には ORM をバイパスします。
以上がDjangoのORMによるデータベース操作方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。