DjangoはMySQLデータベースのプロセスを使用しています
手動でのMySQLデータベースを作成します
設定データベース
ENGINE MySQL NAME 数据库的名字 HOST ip PORT 3306 USER 用户名 PASSWORD 密码
設定と同じディレクトリに
__init__.py
書き込みコード:import pymysql pymysql.install_as_MySQLdb()
ライトモデル:
form django.db import models class Publisher(models.Model): name = models.CharField(max_length=32)
移行コマンドを実行するには
python manage.py makemigrations # 检查已经注册的APP下面的models.py的变更情况 python manage.py migrate # 执行迁移
蛇
オブジェクトリレーショナルマッピング
地図:
クラス_>テーブル
オブジェクト_>行(レコード)
プロパティ_>フィールド
ORMは行うことができます。
- データを変更します
- テーブルの上に変更を行います
ORM操作
お問い合わせ
from app01 import models models.Publisher.objects.all() #查询所有的数据 QuerySet 对象列表 models.Publisher.objects.get(name='xxx') #查询一条数据 只能查有且唯一的数据 models.Publisher.objects.filter(name='xxx') #查询所有满足条件的数据 对象列表
新しいです
obj = models.Publisher.objects.create(name='xxxx') obj = models.Publisher(name='xxxx') obj.save() # 保存到数据库
[削除]
models.Publisher.objects.filter(pk=pk).delete() # 批量删除 models.Publisher.objects.get(pk=pk).delete() # 单条数据的删除
更新
models.Publisher.objects.filter(pk=pk).update(name='xx') # 批量更新 obj = models.Publisher.objects.get(pk=pk) obj.name = 'xxxx' obj.save() # 保存到数据库
外部キー
多くの関係
class Book(models.Model):
name = models.CharField(max_length=32)
pub = models.ForeignKey('Publisher', on_delete=models.CASCADE)
"""
on_delete 在2.0版本之后是必填的
on_delete=
models.CASCADE 级联删除
PROTECT 保护
SET(1)
SET_DEFAULT 设置为默认值设置为某一个值
SET_NULL 设置为空
DO_NOTHING 什么都不变
"""
お問い合わせ
all_books = models.Book.objects.all()
for book in all_books:
print(book)
print(book.id)
print(book.pk)
print(book.name)
print(book.pub) # 所关联的出版社对象 对象.外键
print(book.pub_id) # 所关联的出版社对象的id 对象.外键_id
新しいです
models.Book.objects.create(name=book_name,
pub=models.Publisher.objects.get(pk=pub_id))
obj = models.Book.objects.create(name=book_name, pub_id=pub_id)
編集します
book_obj.name = book_name
book_obj.pub_id = pub_id
# book_obj.pub = 出版社的对象
book_obj.save()
models.Book.objects.filter(pk=pk).update(name=book_name,pub_id=pub_id)