Django2中ORM的相关内容

Django2中ORM的相关内容

数据库创建新用户&授权

create user '<username>'@'%' identified by '<password>';
grant all privileges on <database>.* to '<username>'@'%';
flush privileges;

在数据库系统中中执行这些命令,可以给指定用户针对某个database进行授权,这里*授予了所有权限。

配置数据库

在项目下的settings.py中的DATABASES中,将默认的

'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

注释掉,然后再添加上以下配置:

'ENGINE': 'django.db.backends.mysql',
'NAME': '<数据库名称>',
'HOST': '<云服务器地址>',
'PORT': '3306',
'USER': '<数据库user>',
'PASSWORD': '<数据库密码>',

如果用的是pymysql作为驱动,需要做一些额外的修改。

首先在项目下的init.py添加:

import pymysql
pymysql.install_as_MySQLdb()

然后按住ctrl点击第二个语句,进入到源代码中,添加如下代码:
在这里插入图片描述
在这里插入图片描述

就可以使用pymysql了。

模型的创建&模型迁移

在应用下的models.py中建立你的模型:

class Subject(models.Model):
    """学科"""
    no = models.AutoField(primary_key=True, verbose_name='编号')
    name = models.CharField(max_length=32, verbose_name='名称')
    intro = models.CharField(max_length=2000, verbose_name='介绍')
    
    class Meta:
        db_table = 'tb_subject'

其中models.AutoField等是字段类型,括号内分别是约束条件,verbose_name是在django自带的admin系统中的表列名,db_table是数据库中数据表的名称,通常写成tb_xxx的形式。

创建好模型后,在终端使用:

python manage.py makemigrations
python manage.py migrate

完成数据模型的迁移,生成对应的数据表。

ORM对象关系映射

使用ORM的好处是不用写SQL语句,直接操作模型和对象,就能完成数据的交互操作。

添加:

subject = Subject(name='数学',intro='数学很难')
subject.save()

查询:

subject = Subject.objects.get(no=1)
print(subject.no,subject.name,subject.intro)

查询还可以使用Subject.objects.filter(条件),返回结果是QuerySet查询集,可以用for循环遍历。

修改:

subject = Subject.objects.get(no=1)
subject.intro = '数学很简单啊'
subject.save()

修改是基于查询的,先查出来,在将它的某个属性重新赋值,然后再保存,就修改完成了。

删除:

subject = Subject.objects.get(no=1)
subject.delete()

删除也是基于查询的,先找到,然后使用delete方法删除。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值