orm连接mysql_Django项目如何使用ORM连接MySQL

1. 手动创建数据库

2. 在settings.py里面配置一下数据库的连接信息(告诉Django连接哪一个数据库)

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql', # 连接数据库的类型

'NAME': 'day62xiawu', # 数据库名字

'HOST': '127.0.0.1', # IP

'PORT': 3306, # 端口

'USER': 'root', # 用户名

'PASSWORD': '123456', # 密码

}

}

3. 在和settings.py同目录下的__init__.py文件中,告诉Django用pymysql代替MySQLdb来连接数据库

import pymysql

pymysql.install_as_MySQLdb()

4. 在app/models.py中,定义类,类一定要继承models.Model

class Book(models.Model):

id = models.AutoField(primary_key=True)

title = models.CharField(max_length=32)

5. 执行两条命令

1. 在哪儿执行?

在项目的根目录(有manage.py文件的那个目录)

2. 命令

python manage.py makemigrations --> 将models.py文件中的改动记录在小本本(app/migrations/00xx_****.py)上

python manage.py migrate --> 将改动翻译成SQL语句,去数据库中执行

2. 表和表之间的关系

1. 一对多(出版社和书)

publisher = models.ForeignKey(to="Publisher")

在数据库中:

有没有publisher这个字段?

数据库中实际 生成的是一个 publisher_id 字段

2. 多对多(作者和书)

books = models.ManyToManyField(to="Book")

在数据库中:

是通过第三张表建立的关系

3. 增删改查操作

1. 单表增删改查

增:

models.Publisher.objects.create(name="沙河出版社")

查:

models.Publisher.objects.get(id=1)

models.Publisher.objects.get(name="沙河出版社")

删:

models.Publisher.objects.get(id=1).delete()

改:

obj = models.Publisher.objects.get(id=1)

obj.name = "沙河第二出版社"

obj.save()

2. 外键的增删改查

增、删、查同上

book_obj = models.Book.objects.get(id=1)

book_obj.publisher 是什么? *****

和我这本书关联的出版社对象

book_obj.publisher.id 和我这本书关联的出版社的id值

book_obj.publisher.name 和我这本书关联的出版社的名称

book_obj.publisher_id 是什么?

和我这本书关联的出版社的id值

3. 多对多操作

1. 查id为1的作者都写过的书?

author_obj = models.Author.objects.get(id=1)

author_obj.books.all() --> 和我这个作者关联的所有书对象

2. 想给作者绑定多本书?

author_obj = models.Author.objects.get(id=1)

author_obj.books.set([1,2,3]) --> 把id是1、2、3的书和我这个作者关联上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值