使用 Django 连接 MySQL 数据库

文章目录

    • 步骤一:安装必要的库和驱动
    • 步骤二:配置数据库连接
    • 步骤三:执行数据库迁移
    • 步骤四:开始使用 MySQL 数据库
      • 创建一个模型
      • 迁移模型到数据库
      • 使用模型进行数据操作
        • 创建新记录:
        • 查询记录:
        • 更新记录:
        • 删除记录:
    • 总结与拓展
      • 总结
      • 拓展

在 Django 中,我们可以使用 MySQL 作为后端数据库来存储数据。下面是连接 Django 和 MySQL 数据库的步骤:
在这里插入图片描述

步骤一:安装必要的库和驱动

首先,确保已经安装了 Django 和 MySQL 客户端驱动。可以通过以下命令安装:

pip install Django mysqlclient

步骤二:配置数据库连接

在 Django 项目的 settings.py 文件中,找到 DATABASES 配置项,并进行如下配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'your_database_name',
        'USER': 'your_database_user',
        'PASSWORD': 'your_database_password',
        'HOST': 'localhost', # 或者指定数据库的主机地址
        'PORT': '3306', # MySQL 默认端口为 3306
    }
}

请将上述代码中的 your_database_nameyour_database_useryour_database_password 替换为实际的数据库名称、用户名和密码。

步骤三:执行数据库迁移

在配置好数据库连接后,使用以下命令执行数据库迁移:

python manage.py makemigrations
python manage.py migrate

这两个命令将会在 MySQL 数据库中创建相应的表结构。

步骤四:开始使用 MySQL 数据库

在 Django 项目中,您可以通过模型(Model)来定义数据结构并与 MySQL 数据库交互。以下是一些常用的操作示例:

创建一个模型

首先,在 Django 应用的 models.py 文件中定义一个模型类,例如:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    publish_date = models.DateField()

迁移模型到数据库

运行以下命令将新定义的模型迁移至 MySQL 数据库:

python manage.py makemigrations your_app_name
python manage.py migrate

确保将 your_app_name 替换为您的应用名称。

使用模型进行数据操作

现在您可以在 Django 中使用该模型与 MySQL 数据库进行数据交互。以下是一些示例代码:

创建新记录:
book = Book(title='Django for Beginners', author='John Doe', publish_date='2024-05-28')
book.save()
查询记录:
books = Book.objects.all()  # 获取所有书籍记录
book = Book.objects.get(title='Django for Beginners')  # 根据标题获取特定记录
更新记录:
book = Book.objects.get(title='Django for Beginners')
book.author = 'Jane Smith'
book.save()
删除记录:
book = Book.objects.get(title='Django for Beginners')
book.delete()

总结与拓展

通过以上步骤,我们已经学会了如何在 Django 项目中使用 MySQL 数据库。

总结

  • 通过安装 mysqlclient 库并配置 DATABASES 设置,可以让 Django 项目连接到 MySQL 数据库。
  • 使用 makemigrationsmigrate 命令可以将模型迁移至 MySQL 数据库,并进行数据库表结构的创建和更新。
  • 在模型中定义字段和方法后,可以通过模型类进行数据的增删改查操作。

拓展

  • 可以进一步学习 MySQL 数据库的高级特性,如索引、事务、存储过程等,以优化数据库性能和扩展功能。
  • 可以探索 Django ORM(对象关系映射)的更多特性,如复杂查询、关联模型等,以更加灵活地操作数据库。
  • 了解 Django 的数据库迁移机制和版本控制,以便在团队协作或生产环境中管理数据库变更。

希望本文能够帮助您顺利地在 Django 项目中使用 MySQL 数据库,并为您未来的项目开发提供一定的指导和启发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/658776.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Innodb Buffer Pool缓存机制(一)一条sql的执行过程

思维导图 石墨文档:https://shimo.im/mindmaps/NJkbnZV0ePINXzkR 一、SQL的执行 执行过程: 加载缓存数据,加载id为1的记录所在的整页数据(相当于索引树的一个结点,16KB);写入更新数据的旧值到…

重生奇迹mu卡智力的方法

1、准备3个号A打手,B智力MM,C随意。 2、使用C匹配组队,但是不能选择自动进入队伍。 3、用A申请C的队伍,但是C不做通过处理。 4、用A组B,用快捷键D的方式。 5、所谓的卡智力就是智力MM可以给打手加属性加血,但是并不在一个队伍里享受经验,适用于MM不是…

如何提升网站运营效率

企业网站作为品牌展示、客户获取和商业目标实现的关键平台,其运营效率的提升对增强用户体验、搜索引擎排名和转化率至关重要。以下是一些有效技术和策略的介绍,旨在助力您提高网站运营的效率。 一、网站速度的优化 1.1 利用内容分发网络(CD…

基于Docker的ROS开发

本文主要介绍如何使用Docker在Windows和Linux环境中部署并使用ROS,通过Docker Container运行ROS,可以方便我们在一个本地环境中运行多个ROS版本。 更多内容,访问专栏目录获取实时更新。 关于ROS的版本 参考ROS1 Distribution Wiki和ROS2 Dis…

轻松驾驭文件管理:一键转换格式,自定义重命名,让你的文件整理更高效便捷!

在日常工作和生活中,我们经常会面临需要修改文件格式的情况。无论是转换文件为更普遍使用的格式,还是根据特定需求调整文件的扩展名,都需要一个简单而有效的文件管理工具来完成这项任务。那么,文件批量改名高手将会让您在文件格式…

开源博客项目Blog .NET Core源码学习(28:App.Hosting项目结构分析-16)

本文学习并分析App.Hosting项目中后台管理页面的用户管理页面。   用户管理页面用于显示、检索、新建、编辑、删除用户数据,其附带一新建及编辑页面,以支撑新建和编辑用户数据,同时还附带重置密码页面,以重置用户密码。整个页面…

【安全产品】基于HFish的MySQL蜜罐溯源实验记录

MySQL蜜罐对攻击者机器任意文件读取 用HFish在3306端口部署MySQL蜜罐 配置读取文件路径 攻击者的mysql客户端版本为5.7(要求低于8.0) 之后用命令行直连 mysql -h 124.222.136.33 -P 3306 -u root -p 可以看到成功连上蜜罐的3306服务,但进行查询后会直接lost con…

弘君资本:原始股、普通股、优先股、分红股有什么区别?

1、原始股是公司在上市之前发行的股票,一般只有公司管理层、董事长、监事、公司重要职工、股权出资基金等才干取得公司的原始股。原始股需求出资认购。 在股市里也叫做限售股,一般的原始股,发起人持有的本公司股份,自公司建立之日…

ABP框架+Mysql(一)

生成项目 通过用官网的来生成 Get Started | ABP.IO 配上官网地址,需要注意的是,数据库选择Mysql 选择完成后,执行页面上的两条命令 dotnet tool install -g Volo.Abp.Cli abp new Acme.BookStore -dbms MySQL -csf 生成结束后的内容 单击打…

js在处理异步任务时,forEach和for...of循环之间的区别

先看效果 forEach循环: 1、forEach是数组的原生方法,用于遍历数组。 2、它无法直接处理异步任务,因为它不会等待每个任务的完成,而是立即执行下一个任务。 3、这意味着如果在forEach循环中执行异步任务,它们将会同时进…

29. 【Java教程】异常处理

Java 的异常处理是 Java 语言的一大重要特性,也是提高代码健壮性的最强大方法之一。当我们编写了错误的代码时,编译器在编译期间可能会抛出异常,有时候即使编译正常,在运行代码的时候也可能会抛出异常。本小节我们将介绍什么是异常…

多方法总结,怎么修改图片格式为jpg?

在数字化时代,我们常常需要灵活地处理图片,以适应不同的需求和平台。而在这个过程中,将图片格式修改为JPEG(JPG)是一项常见的任务。 JPEG格式以其压缩算法和较小的文件大小而成为互联网上最常见的图片格式之一。怎么修…

链式法则:神经网络前向与反向传播的基石

在深度学习的浪潮中,神经网络以其强大的学习和预测能力,成为解决复杂问题的有力工具。而神经网络之所以能够不断学习和优化,离不开两个核心过程:前向传播和反向传播。其中,链式法则作为微积分学中的一个基本概念&#…

校企携手|泰迪智能科技与高新启动「大数据应用技术」深度合作项目

5月22日,广东泰迪智能科技股份有限公司携手广东省高新技术高级技工学校举行“泰迪高新技术学校大数据双创工作室”暨广东省“产教评”技能生态链学生学徒公共实训基地签约揭牌仪式,标志着双方合作共建大数据应用技术专业、产教生态链实训基地及泰迪高新大…

如何在Android手机恢复误删除的数据

电话数据对我们至关重要。我们可以替换我们使用的设备,但不能替换我们的数据。我们以前一直在使用 CD、USB 和硬盘驱动器来保存数据。随着技术的出现,我们遇到了云存储。我们可以从任何地方和任意次数访问的存储。所有操作系统都有数据云,可用…

【Linux】23. 线程封装

如何理解C11中的多线程(了解) #include <iostream> #include <unistd.h> #include <thread>void thread_run() {while (true){std::cout << "我是新线程..." << std::endl;sleep(1);} } int main() {// 任何语言需要在Linux上实现多线…

博途S7-1200/1500PLC区域长度错误

S7-1200/1500PLC故障有时提示PLC区域长度错误&#xff0c;如下图所示 1、区域长度错误 未完...

前端开发攻略---三种方法解决Vue3图片动态引入问题

目录 1、将图片放入public文件夹中 2、使用 /src/.... 路径开头 3、生成图片的完整URL地址&#xff08;推荐&#xff09; 1、将图片放入public文件夹中 使用图片&#xff1a;路径为 /public 开头 <template><div><img :src"/public/${flag ? 01 : 02}.jp…

【2024最新华为OD-C卷试题汇总】单词大师 (100分) - 支持在线评测+三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; 文章目录 前…

JAVA系列:NIO

NIO学习 一、前言 先来看一下NIO的工作流程图&#xff1a; NIO三大核心组件&#xff0c;channel&#xff08;通道&#xff09;、Buffer&#xff08;缓冲区&#xff09;、selector&#xff08;选择器&#xff09;。NIO利用的是多路复用模型&#xff0c;一个线程处理多个IO的读…