Django更换默认数据库到MySQL实战

2 下载量 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创建数据库表的过程,希望对你的学习有所帮助。