django的数据库
时间: 2025-01-08 18:55:33 浏览: 2
### Django 框架中的数据库使用指南
#### 创建和配置数据库连接
为了使Django能够访问数据库,在项目的设置文件`settings.py`中定义了DATABASES字典,其中包含了所使用的数据库引擎、名称、用户以及其他必要的认证信息。对于SQLite而言,默认情况下只需要指定数据库文件的位置即可[^4]。
```python
# settings.py 中的 DATABASES 配置示例
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '/home/django/db.sqlite3', # SQLite 数据库路径
}
}
```
当涉及到MySQL或其他类型的RDBMS时,则可能还需要额外安装相应的驱动程序并调整上述配置项以适应特定需求。例如,如果要切换至MySQL作为后端存储解决方案的话:
```python
import pymysql
pymysql.install_as_MySQLdb()
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'root',
'PASSWORD': '',
'HOST': '', # 设置为空字符串表示localhost
'PORT': '' # 默认端口留空
}
}
```
这段代码展示了如何引入第三方模块并将之注册为默认的 MySQL 接口实现方式之一[^3]。
#### 设计表结构与模型类
在Django应用里,每一个数据实体通常对应着一个Python类——即所谓的“模型”。这些模型继承自`django.db.models.Model`基类,并且通过字段属性描述其特性以及与其他对象之间的关系。下面给出了一张简单的学生记录表格的设计思路及其对应的 Python 类型声明形式[^1]:
```python
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
grade = models.FloatField(null=True, blank=True)
class Meta:
db_table = "students"
```
此段落介绍了有关于创建名为 `Student` 的新表的过程;该表具有三个列:名字 (`name`)、年龄(`age`) 和成绩 (`grade`) 。值得注意的是,这里还指定了元数据选项来控制实际存放在数据库里的物理表名[^2]。
#### 执行迁移命令同步变更
每当修改了任何现有的模型定义之后(比如新增加了一个字段),都需要运行一次叫做 “migration” (中文译作“迁徙” 或者更通俗地说就是“更新模式图谱”的过程)。这一步骤会自动比较当前版本的应用逻辑层面上的数据架构同底层持久化介质之间存在的差异之处,并据此作出相应更改以便保持二者间的一致性状态。具体来说可以执行如下所示终端指令完成这项工作:
```bash
python manage.py makemigrations app_name
python manage.py migrate
```
以上两条语句分别负责生成新的迁移脚本文件以及将其应用于目标环境中去。
阅读全文