使用 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 modelsclass 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 数据库,并为您未来的项目开发提供一定的指导和启发。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于百度接口的实时流式语音识别系统

目录 基于百度接口的实时流式语音识别系统 1. 简介 2. 需求分析 3. 系统架构 4. 模块设计 4.1 音频输入模块 4.2 WebSocket通信模块 4.3 音频处理模块 4.4 结果处理模块 5. 接口设计 5.1 WebSocket接口 5.2 音频输入接口 6. 流程图 程序说明文档 1. 安装依赖 2.…

Element ui图片上传

前言 对于广大小白来说,图片上传简直是上传难,难于上青天!废话不多说,步入正题,您就瞧好吧! 步骤一:前端使用element ui组件(upload上传) 我个人喜欢使用第二个组件&a…

运放应用1 - 反相放大电路

1.前置知识 反相放大电路存在 负反馈电路 ,工作在线性区,可以利用 虚短 概念来分析电路。 注:运放的 虚断 特性是一直存在的,虚短特性则需要运放工作在 线性区 有关运放的基础知识,可以参考我的另外一篇文章&#xff…

BGP基础配置

BGP 邻居关系建立,与路由条目宣告是分开的配置的 1)直连的 EBGP 邻居关系建立 [r1]bgp1 启动 BGP 协议,启动时需要键入 AS号;没有多进程概念 [r1-bgp]router-id 1.1.1.1 建议配置 RID;若不配置将自动生成一规则同 OSPF 相同 [r1-bgp]pe…

门面模式Api网关(SpringCloudGateway)

1. 前言 当前通过Eureka、Nacos解决了服务注册和服务发现问题,使用Spring Cloud LoadBalance解决了负载均衡的需求,同时借助OpenFeign实现了远程调用。然而,现有的微服务接口都直接对外暴露,容易被外部访问。为保障对外服务的安全…

【kubernetes】探索k8s集群的pod控制器详解(Deployment、StatefulSet、DaemonSet、Job、CronJob)

目录 一、Pod控制器及其功用 二、pod控制器有多种类型 2.1ReplicaSet 2.1.1ReplicaSet主要三个组件组成 2.2Deployment 2.3DaemonSet 2.4StatefulSet 2.5Job 2.6Cronjob 三、Pod与控制器之间的关系 3.1Deployment 3.2SatefulSet 3.2.1StatefulSet三个组件 3.2.2为…

引擎:UI

一、控件介绍 Button 按钮 创建一个按钮 按钮禁用 精灵模式 颜色模式 缩放模式 绑定点击事件 EditBox 输入框 Layout 布局 支持水平排列、垂直排列、背包排列 PageView 页面视图 ProgressBar 进度条 RichText 富文本 绑定点击事件 事件可以被其它标签包裹 图文混排 Scroll…

Redis位图

简介 在我们平时开发过程中,会有一些bool型数据需要存取,比如用户一年的签到记录,签了是1,没签是0,要记录365天。如果使用普通的key/value,每个用户要记录365个,当用户上亿的时候,需…

本地知识库开源框架Fastgpt、MaxKB产品体验

本地知识库开源框架Fastgpt、MaxKB产品体验 背景fastgpt简介知识库共享部署 MaxKB总结 背景 上一篇体验了Quivr、QAnything两个开源知识库模型框架,这次介绍两款小众但是体验比较好的产品。 fastgpt 简介 FastGPT 是一个基于 LLM 大语言模型的知识库问答系统&am…

kubeedge v1.17.0部署教程

文章目录 前言一、安装k8s平台二、部署kubeedge1.部署MetalLB(可选)2.cloud3.edge4. 部署nginx到edge端 总结参考 前言 本文主要介绍kubeedge v1.17.0的安装过程 主要环境如下表 应用版本centos7.0k8s1.28.2kubeedge1.17.0docker24.0.8centos7.0 一、安装k8s平台 本文主要参…

大数据学习问题记录

问题记录 node1突然无法连接finalshell node1突然无法连接finalshell 今天我打开虚拟机和finalshell的时候,发现我的node1连接不上finalshell,但是node2、node3依旧可以链接,我在网上找了很多方法,但是是关于全部虚拟机连接不上finalshell&a…

跨域请求解决方法----不允许有多个 ‘Access-Control-Allow-Origin‘ CORS 头

后端配置了代码: spring:application:name: spzx-server-gatewaycloud:nacos:discovery:server-addr: localhost:8848gateway:discovery:locator:enabled: trueglobalcors:cors-configurations:[/**]:allowedOriginPatterns: "*"# 允许请求中携带的头信息…

【Linux系统】进程信号

本篇博客整理了进程信号从产生到处理的过程细节,通过不同过程中的系统调用和其背后的原理,旨在让读者更深入地理解操作系统的设计与软硬件管理手段。 目录 一、信号是什么 1.以生活为鉴 2.默认动作与自定义动作 3.信号的分类、保存、产生 二、产生…

JavaWeb1 Json+BOM+DOM+事件监听

JS对象-Json //Json 字符串转JS对象 var jsObject Json.parse(userStr); //JS对象转JSON字符串 var jsonStr JSON.stringify(jsObject);JS对象-BOM BOM是浏览器对象模型,允许JS与浏览器对话 它包括5个对象:window、document、navigator、screen、hi…

Linux漏洞SSL/TLS协议信息泄露漏洞(CVE-2016-2183) - 非常危险(7.5分) 解决办法!升级openssl

漏洞情况 详细描述 TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。 TLS, SSH, IPSec协商及其他产品中使用的IDEA、DES及Triple DES密码或者3DES及 Triple 3DES存在大约四十亿块的生日界,这可使远程攻击者通过Sweet32攻击&…

俄罗斯人有哪些常用的口头禅,柯桥零基础俄语培训

Хватит! 够了! -Хватит, не стоит больше шуметь! 够了, 不要再吵了! -Это тебя не касается! 这与你无关! Блин! 靠! Блин这个词绝对是俄罗斯人最爱用的口语表达之一,…

【文档智能】符合人类阅读顺序的文档模型-LayoutReader原理及权重开源

引言 阅读顺序检测旨在捕获人类读者能够自然理解的单词序列。现有的OCR引擎通常按照从上到下、从左到右的方式排列识别到的文本行,但这并不适用于某些文档类型,如多栏模板、表格等。LayoutReader模型使用seq2seq模型捕获文本和布局信息,用于…

Vue——组件数据传递与props校验

文章目录 前言组件数据传递的几种类型简单字符串类型数据专递其他类型数据(数字、数组、对象)传递注意事项 数据传递值校验限定数据类型 type给定默认值 default指定必选项 required 前言 组件与组件之间并不是完全独立的,他们之间可以进行一些数据的传递操作。传递…

HarmonyOS应用开发学习历程(1)初识DevEco Studio

1.create project Bundle name:包名,标识应用程序,默认应用ID也使用该名 Compile SDK:编译时API版本 2.工程目录 AppScope:应用全局所需资源 entry:应用的主模块,含代码、资源 hvigor&#…

产品经理的AI大模型实战指南:驾驭未来,引领创新

前言: 在数字化浪潮席卷全球的今天,AI大模型正以其惊人的潜力和速度,重塑着各行各业的生态。对于产品经理而言,如何在这场变革中站稳脚跟,甚至引领潮流,成为了一个亟待解决的问题。为此,我们特…