django框架--04django中的orm连接数据库模块

Django开发操作数据库更简单,内部提供了ORM框架。

一、安装依赖

Django操作数据库,使用第三方库mysqlclient  安装命令  pip install  mysqlclient (等价于pymysql)

如果windows使用pip安装失败的话可以下载mysqlclient whl包

二、orm创建数据库

orm可以帮助我们做两件事:

        1.创建、修改、删除数据库的表(不用写sql,但注意只能创建表,不能创建数据库)

        2.操作表中的数据

创建数据库:

        可以使用终端,利用sql创建数据库,更方便使用navicate等工具

        create database  ....

Django连接数据库

在settings里面配置数据库:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'day15',
        'USER': 'root',
        'PASSWORD': 123456,
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

如果使用django模板里面的sqlite时,配置文件如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'django001.db',
    }
}

Django操作数据库表

在models.py中:

class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField()


"""
create table app01_userinfo(
    id bigint auto_increment primary key,
    name varchar(32),
    password varchar(64),
    age int
)

"""

这段话来自于官方文档:

迁移是非常强大的功能,它能让你在开发过程中持续的改变数据库结构而不需要重新删除和创建表 - 它专注于使数据库平滑升级而不会丢失数据。我们会在后面的教程中更加深入的学习这部分内容,现在,你只需要记住,改变模型需要这三步:

在终端命令窗口输入此命令:

python manage.py makemigrations

python manage.py migrate

自动生成对应的数据库表:

如果需要新增表:

直接在models.py中写入响应的模型,然后重新输入命令。

修改表结构操作一样

注意:

        1.创建表的前提是改app已经注册

        2.当对已有的表增加新字段时,可能遇到一些问题,解决方法允许该字段可以为空

data_str = models.IntegerField(null=True,blank=True)

给该字段添加默认值

new_str = models.IntegerField(default=2)

三、orm增删改查

在数据库中新增信息

models.UserInfo.objects.create(name="张三", password="123456", age=18)

删除数据

# 根据id删除
models.UserInfo.objects.filter(id = 1).delete()
# 全部删除
models.UserInfo.objects.all().delete()

查询数据(可以通过遍历对象获取数据)

# 获取所有数据 但是结果为queryset类型的--其实就是对象列表
    models.UserInfo.objects.all()

    for obj in data_list:
        print(obj.id,obj.name,obj.password,obj.age)

# 获取id等于1的数据,结果是一个对象
    models.UserInfo.objects.filter(id = 1).first()

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值