Django更换默认数据库到MySQL实战
155 浏览量
更新于2024-08-30
收藏 262KB PDF 举报
本文主要介绍了如何将Django项目的默认数据库从SQLite3更改为MySQL,并提供了在PyCharm中使用Django ORM创建数据库表的步骤。
在Django项目中,我们通常使用settings.py文件来配置数据库。要将数据库从SQLite3切换到MySQL,你需要在settings.py文件中更改默认的数据库配置。以下是一个示例配置:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 使用MySQL引擎
'NAME': 'wechat', # 数据库名称
'USER': 'root', # 数据库用户名
'PASSWORD': '123456', # 数据库密码
'HOST': '127.0.0.1', # 数据库主机地址,本地开发时通常为127.0.0.1
'PORT': '3306', # 数据库端口号,默认为3306
}
}
```
在完成上述配置后,确保MySQL服务器已启动并运行。你可以通过命令行工具连接到MySQL,例如:
```bash
mysql -u root -p
```
输入密码后,创建一个新的数据库:
```sql
CREATE DATABASE wechat DEFAULT CHARSET=utf8;
```
这样,你就为Django项目设置了新的MySQL数据库。
接下来,让我们看看如何在Django中使用ORM(对象关系映射)创建数据库表。Django的ORM允许开发者使用Python类定义模型,这些模型对应于数据库中的表。在models.py文件中,你可以创建如下的类:
```python
from django.db import models
class WechatUser(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
profile_picture = models.ImageField(upload_to='user_images/')
```
这里的`WechatUser`类代表一个数据库表,其中`name`是CharField类型,用于存储字符串;`age`是IntegerField,用于存储整数;`profile_picture`是ImageField,用于存储图片,`upload_to`参数指定了上传图片的路径。
在模型定义完成后,需要在admin.py中注册该模型:
```python
from django.contrib import admin
from .models import WechatUser
admin.site.register(WechatUser)
```
现在,打开终端并在项目目录下执行以下命令来同步数据库:
```bash
python manage.py makemigrations
python manage.py migrate
```
`makemigrations`命令会检查模型的改变并生成迁移文件,而`migrate`命令则会应用这些迁移,创建或更新数据库中的表。
如果你使用的是PyCharm,可以通过其内置的数据库工具进行交互。在PyCharm的Database面板中,可以导入db.sqlite3文件,或者直接连接到MySQL数据库。如果数据库没有自动显示,你可以尝试点击小扳手图标进行设置,确保已安装正确的驱动,然后重新拖拽数据库文件或刷新数据库列表。
最后,你可以通过Django的admin界面查看和管理由`WechatUser`模型创建的`students_student`表。这样,你就成功地将Django项目从SQLite3切换到了MySQL,并创建了一个新的数据库表。
相关阅读:
- Django的创建和使用详解(默认数据库sqlite3)
- Django配置MySQL数据库的完整步骤
- django+mysql的使用示例
- pythonDjango连接MySQL数据库做增删改查
- django连接mysql数据库及建表操作实例详解
以上内容详细阐述了如何在Django项目中切换数据库以及使用ORM创建数据库表的过程,希望对你的学习有所帮助。
2019-09-18 上传
2021-07-05 上传
2019-08-10 上传
2021-01-02 上传
2021-01-21 上传
2020-09-09 上传
2020-12-23 上传
2023-06-16 上传
2023-06-16 上传
weixin_38593701
- 粉丝: 5
- 资源: 907
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明