Django数据写入MySQL数据库

devtools/2024/11/18 23:37:30/

将 Django 模型写入 MySQL 数据库的步骤与写入其他数据库类型基本相同。以下是详细的步骤和示例,帮助你在 Django 项目中配置 MySQL 数据库并写入数据。

1. 安装 MySQL 和相关依赖

首先,确保你已经安装了 MySQL 数据库服务器和 mysqlclient 包。mysqlclient 是 Django 用于连接 MySQL 的 Python 库。

安装 MySQL

根据你的操作系统,安装 MySQL 的方法可能不同。以下是一些常见操作系统的安装方法:

  • Ubuntu/Debian:

    sudo apt-get update
    sudo apt-get install mysql-server
    
  • CentOS/RHEL:

    sudo yum install mysql-server
    
  • macOS:
    使用 Homebrew 安装 MySQL:

    brew install mysql
    
mysqlclient_27">安装 mysqlclient

使用 pip 安装 mysqlclient

pip install mysqlclient

2. 配置 Django 项目

编辑 settings.py 文件,配置数据库设置以使用 MySQL。

# myproject/settings.pyDATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'your_database_name','USER': 'your_username','PASSWORD': 'your_password','HOST': 'localhost',  # 或者你的 MySQL 服务器地址'PORT': '3306',       # 默认端口}
}

3. 创建数据库

在 MySQL 中创建数据库。你可以使用 MySQL 命令行工具或其他管理工具(如 phpMyAdmin)来创建数据库

mysql -u your_username -p

进入 MySQL 命令行后,创建数据库

CREATE DATABASE your_database_name;
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
EXIT;

4. 定义模型

在你的应用中定义模型。假设你有一个应用 myapp,你需要定义一个 Book 模型:

# myapp/models.pyfrom django.db import modelsclass Book(models.Model):title = models.CharField(max_length=200)author = models.CharField(max_length=100)publication_date = models.DateField()price = models.DecimalField(max_digits=5, decimal_places=2)def __str__(self):return self.title

5. 创建迁移文件

定义好模型后,你需要创建一个迁移文件,该文件会告诉 Django 如何在数据库中创建对应的表。

运行以下命令来创建迁移文件:

python manage.py makemigrations myapp

这将生成一个迁移文件,通常位于 myapp/migrations/ 目录下。

6. 应用迁移

创建迁移文件后,你需要应用这些迁移,以在数据库中实际创建表。

运行以下命令来应用迁移:

python manage.py migrate

这将在 MySQL 数据库中创建 Book 表。

7. 写入数据

现在,你可以在视图、脚本或其他地方使用 Django ORM 来写入数据。

示例:在视图中写入数据

假设你在 views.py 中有一个视图,用于创建一个新的 Book 对象并保存到数据库

# myapp/views.pyfrom django.shortcuts import render
from .models import Bookdef create_book(request):if request.method == 'POST':title = request.POST.get('title')author = request.POST.get('author')publication_date = request.POST.get('publication_date')price = request.POST.get('price')book = Book(title=title,author=author,publication_date=publication_date,price=price)book.save()  # 保存到数据库return render(request, 'book_created.html', {'book': book})else:return render(request, 'create_book.html')
示例:在脚本中写入数据

你也可以在独立的脚本中写入数据。例如,创建一个 manage.py 脚本来添加书籍:

# add_books.pyimport os
import djangoos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')
django.setup()from myapp.models import Bookdef add_books():book1 = Book(title='The Great Gatsby',author='F. Scott Fitzgerald',publication_date='1925-04-10',price=19.99)book1.save()book2 = Book(title='To Kill a Mockingbird',author='Harper Lee',publication_date='1960-07-11',price=15.99)book2.save()if __name__ == '__main__':add_books()

运行这个脚本:

python add_books.py

8. 验证数据

你可以使用 Django 的管理界面或 shell 来验证数据是否已成功写入数据库

使用管理界面
  1. 确保 Book 模型在 admin.py 中注册:
# myapp/admin.pyfrom django.contrib import admin
from .models import Bookadmin.site.register(Book)
  1. 运行开发服务器:
python manage.py runserver
  1. 访问 http://127.0.0.1:8000/admin/ 并登录,你应该能看到 Book 模型的数据。
使用 Django shell

运行 Django shell:

python manage.py shell

在 shell 中查询数据:

from myapp.models import Bookbooks = Book.objects.all()
for book in books:print(book.title, book.author, book.publication_date, book.price)

总结

通过以上步骤,你可以在 Django 项目中配置 MySQL 数据库并写入数据。定义模型、创建迁移文件、应用迁移、写入数据和验证数据是整个过程中不可或缺的部分。


http://www.ppmy.cn/devtools/135064.html

相关文章

谷歌浏览器的自动翻译功能如何开启

在当今全球化的网络环境中,能够流畅地浏览不同语言的网页是至关重要的。谷歌浏览器(Google Chrome)提供了一项强大的自动翻译功能,可以帮助用户轻松跨越语言障碍。本文将详细介绍如何开启和使用谷歌浏览器的自动翻译功能&#xff…

ArkTs简单入门案例:简单的图片切换应用界面

在鸿蒙 OS 应用开发的过程中,我们常常需要通过组合各种组件和编写相应的逻辑来实现丰富多样的功能。今天,我就来和大家详细解析一段实现简单图片切换功能的代码,希望能帮助到那些刚接触鸿蒙 OS 应用开发的朋友们。 一、代码导入部分 Entry …

基于微信小程序的药店管理系统+LW示例参考

1.项目介绍 系统角色:管理员、普通用户功能模块:管理员(用户管理、药品分类管理、药品信息管理、系统管理、订单管理等),普通用户(查看相关药品信息、充值、登录注册、个人中心、购物车、我的订单等&#…

贪心算法入门(三)

相关文章 贪心算法入门(一)-CSDN博客 贪心算法入门(二)-CSDN博客 1.什么是贪心算法? 贪心算法是一种解决问题的策略,它将复杂的问题分解为若干个步骤,并在每一步都选择当前最优的解决方案&am…

2023年MathorCup数学建模A题量子计算机在信用评分卡组合优化中的应用解题全过程文档加程序

2023年第十三届MathorCup高校数学建模挑战赛 A题 量子计算机在信用评分卡组合优化中的应用 原题再现: 在银行信用卡或相关的贷款等业务中,对客户授信之前,需要先通过各种审核规则对客户的信用等级进行评定,通过评定后的客户才能…

Mysql-DQL条件查询

文章目录 条件查询比较运算符逻辑运算符范围like 关键字排序单列顺序组合排序 聚合函数分组基本的分组流程参数的区别 limit 语句limit 语法格式limit 的使用场景 🏡作者主页:点击! 🤖Mysql专栏:点击! ⏰…

本草智链:中药实验管理的区块链应用

5系统详细实现 5.1 管理员模块的实现 5.1.1 教师信息管理 中药实验管理系统的系统管理员可以管理教师,可以对教师信息添加修改删除以及查询操作。具体界面的展示如图5.1所示。 图5.1 教师信息管理界面 5.1.2 学生信息管理 系统管理员可以查看对学生信息进行添加&a…

Ubuntu 的 ROS 操作系统 turtlebot3 gazebo仿真

引言 TurtleBot3 Gazebo仿真环境是一个非常强大的工具,能够帮助开发者在虚拟环境中测试和验证机器人算法。 Gazebo是一个开源的3D机器人仿真平台,它能支持物理引擎,允许机器人在虚拟环境中模拟和测试。结合ROS,它能提供一个完整的…