Django——创建数据库和表

本文介绍如何使用Django的内置ORM框架进行数据库操作,包括模型定义、数据库配置、数据迁移及增删改查等核心功能。
Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Django——创建数据库和表

Django拥有内置的ORM框架(object relational mapping),通过对象操作数据库。

模型是项目的数据来源,其中每一个模型都是一个python类,并且全部继承django.db.models.Model类

  • 定义django.db.models.Model的子类,创建数据库表;
  • 定义表中的字段,类里面的属性;
  • 类中的方法就是对数据库进行数据的增删改查等操作;
  • 模型的文件名默认是models.py;

在使用指令创建项目时,django默认不会自动创建模型文件;在创建应用时,会主动创建模型文件。

创建模型

项目的数据存在数据库中,每模型文件中的一个子类都是一个数据表

创建一个phoneNumber类,定义字段类型为models.CharField的两个字段,表示的类型是varchar

from django.db import models

class phoneNumber(models.Model):  # 每一个类都必须继承models.Model
    name = models.CharField(max_length=10, verbose_name='名称')
    number = models.CharField(max_length=11, verbose_name='电话号码')

在模型文件中定义完类后,需要配置模型,在项目的配置文件setting.py中修改INSTALLED_APPS
DATABASES变量的值

INSTALLED_APPS = [
    ...
    '创建的应用名'   # 添加模型文件所在的位置
]

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

Django中默认的数据库是SQLite3,同时也支持MySQL、Oracle和PostgreSQL等数据库

设置数据库为MySQL

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysqldb',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',     # 数据库所在的IP地址,为空表示127.0.0.1
        'POST': '',     # 连接端口号,为空表示默认端口号3306
    }
}

更新数据

在任何数据改动后,都需要执行更新数据的操作,在Django中叫做数据库迁移

python manage.py makemigrations 应用名称    # 在应用模块进行数据的更新
python manage.py migrate                   # 数据更新到数据库中
  • 在进行数据更新时,Django会自动生成一个001_initial.py迁移文件;
  • 迁移文件位置在应用目录下的migrations目录;
  • Django只为更改的部分生产迁移文件;
from django.db import models
class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='phoneNumber',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=10, verbose_name='名称')),
                ('number', models.CharField(max_length=11, verbose_name='电话号码')),
            ],
        ),
    ]

添加数据

Django通过Manager提供数据库访问接口。默认是为每个模型添加一个名为objects的管理器,调用objects的各种
方法对数据进行相关操作。

  • 只有进入当前的python交互式环境才能正确的使用模型;
  • 系统的python的交互式环境,因为无法加载manager.py文件的配置信息,所以会出错;
  • 执行python manager.py shell进入当前项目的交互式环境进行添加数据;

save()方法将对象数据写入数据库

>>> from apps.models import phoneNumber            # 导入模型
>>> n = phoneNumber(name='小米', number='123')     # 创建模型
>>> n.save()                                       # 保存数据

create()方法创建并保存对象

>>> from apps.models import phoneNumber            # 导入模型
>>> n = phoneNumber.objects.create(name='小米', number='123')

不管使用哪种方法进行数据保存,django都会默认给新添加的数据进行添加一个名为id的字段,作为模型的主键
也可以指定id的值。

  • id作为主键,具有唯一标识的作用;
  • 当存在相同的id时,会将旧数据进行覆盖;
>>> from apps.models import phoneNumber            # 导入模型
>>> n = phoneNumber.objects.create(id='2', name='小米', number='123')

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 如何在PyCharm中使用Django创建数据库 #### 准备工作 为了确保可以顺利创建并管理数据库,在开始之前需确认已安装好Python解释器以及Django框架,并配置好了相应的虚拟环境。这些准备工作可以在PyCharm中的`Settings/Preferences | Project: <project_name> | Python Interpreter`完成设置[^1]。 #### 配置settings.py文件 打开项目的`settings.py`文件,找到DATABASES部分。默认情况下,这里会有一个名为default的字典项用于定义SQLite作为开发阶段使用的内置数据库引擎。如果想要连接其他类型的数据库(如PostgreSQL, MySQL),则需要修改此部分的内容来指定具体的参数,比如主机名、端口、用户名密码等信息。 ```python # settings.py 中的部分代码片段 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', # 或者其他的数据库后端 'NAME': BASE_DIR / 'db.sqlite3', } } ``` #### 创建迁移脚本 当所有的模型类都已经编写完毕之后,就可以通过命令行工具生成对应的SQL语句了。这一步骤可以通过运行如下所示的manage.py命令实现: ```bash python manage.py makemigrations appname ``` 这条指令将会扫描整个项目寻找任何未同步的数据结构变化,并据此构建出一系列待执行的操作列——即所谓的“迁移”。请注意替换掉其中的`appname`为实际的应用名称。 #### 应用迁移至真实数据库 最后一步就是真正地把前面准备好的更改应用到目标数据库当中去。同样借助于manage.py提供的功能,只需简单输入下面这段话即可达成目的: ```bash python manage.py migrate ``` 上述过程不仅能够初始化新建立起来的关系型数据存储空间,同时也负责处理诸如字段增删改查之类的后续维护任务。对于初次使用者来说,建议先熟悉下官方文档里关于ORM(Object Relational Mapping)机制的相关介绍[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值