手把手教你使用Django如何连接Mysql

【python】Django——连接mysql数据库 ORM(Object-Relational Mapping)是一种编程技术,它允许开发者使用面向对象的方式来操作数据库,而不必直接编写SQL语句。在Django中,ORM是通过Django自带的django.db.models模块来实现的。 阅读详情

前言

这次咱们来简述一下,Django如何连接Mysql。

默认情况下,Django连接的是自己带的sqlite数据库。

这种数据库好处是方便,不需要远程连接,打包项目挪到其他电脑上安装一下依赖一会就跑起来了。

但是缺点就是,可能会出现各种莫名其面的问题,所以,尽可能在开始的时候,就配置上连接Mysql。

连接Mysql

Django连接Mysql分三步

  1. Mysql提前创建好数据库。

  2. 修改Django的settings.py文件。

  3. 修改项目文件夹下的__init.py文件。

1.Mysql提前创建好数据库

首先,我使用的是本机的Mysq,并且我在Mysq上创建了一个school数据库。

2.修改Django的settings.py文件

创建一个Django项目,在项目文件夹下的settings.py下,找到原来的sqlite配置文件。

注销或删除sqlite配置,添加以下配置。

复制以下代码

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 默认
        'NAME': 'school',  # 连接的数据库
        'HOST': '127.0.0.1',  # mysql的ip地址
        'PORT': 3306,  # mysql的端口
        'USER': 'root',  # mysql的用户名
        'PASSWORD': 'rootroot'  # mysql的密码
    }
}

3.修改项目文件夹下的__init.py文件

由于配置了Mysql,所以要替换默认的数据库引擎,在项目文件夹下的__init__.py,添加以下内容。

复制以下代码

import pymysql


pymysql.install_as_MySQLdb()

如果没有安装pymysql,记得安装一下,命令:pip install pymysql。

迁移数据库

如果上述都没问题了,那我们来写个小Demo来跑一下试试。

迁移数据库流程。

  1. 创建app(Django必须依赖app才能创建表)。

  2. settings.py中添加创建的app。

  3. 迁移。

1.创建app(Django必须依赖app才能创建表)

首先呢,我们需要在Django中,创建一个app。命令如下:

python manage.py startapp web

2. settings.py中添加创建的app

创建完之后,我们需要在settings.py中配置一下刚刚创建的app。

3.迁移

然后执行命令,迁移数据库到Mysql。

python manage.py makemigrations
python manage.py migrate

生成的表。

会生成很多其他表,不用管他,只要咱们要的。

我这里直接手动向刚刚创建的表里面添加一些数据。

展示内容

展示内容大概分为以下几个部分。

  1. 编写url。

  2. 编写视图(views)。

  3. 编写html(templates)。

  4. 启动web。

1.编写url

urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('student_list', views.student_list),
]

2.编写视图(views)

web/views.py

def student_list(request):
    student_queryset = models.Student.objects.all()
    return render(request,"student.html",{"student_queryset":student_queryset})

3.编写html(templates)

templates/student.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<table border="1">
    <thead>
    <tr>
        <td>id</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>性别</td>
        <td>年纪</td>
    </tr>
    </thead>
    <tbody>
    {% for student in student_queryset %}
        <tr>
            <td>{{ student.id }}</td>
            <td>{{ student.name }}</td>
            <td>{{ student.age }}</td>
            <td>{{ student.gender }}</td>
            <td>{{ student.grade }}</td>
        </tr>
    {% endfor %}


    </tbody>
</table>
</body>
</html>

4.启动web

命令

python manage.py runserver 127.0.0.1:8000

打开游览器,输入http://127.0.0.1:8000/student_list

如图所示!

总结

本次主要讲述的是Django如何连接Mysql。并且顺带的做了一个测试小Demo,展示一个web是如何运行起来的。如果基础不好,我相信后面这些还是很有用的。

pymysql的版本不建议安装太高,我的是pymysql版本是0.9.2,Django版本是2.1.5。

如果你觉得文章还可以,记得点赞留言支持我们哈。感谢你的阅读,有问题请记得在下方留言噢~

程序员GitHub,现已正式上线!

接下来我们将会在该公众号上,专注为大家分享GitHub上有趣的开源库包括Python,Java,Go,前端开发等优质的学习资源和技术,分享一些程序员圈的新鲜趣事。

年度爆款文案

点这里,获取腾讯课堂畅学卡
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。 阅读详情

相关推荐

django中如何使用mysql连接池

此外,如果你的应用程序需要处理大量的并发请求,并且数据库连接成为瓶颈,你可能需要考虑使用专门的数据库连接池解决方案,如ProxySQL或PgBouncer,这些解决方案可以与Django一起使用,为数据库提供更高级的连接管理和负载均衡功能。同时,确保你的应用程序在部署时能够妥善处理数据库连接的异常和超时。然而,如果你确实需要更细粒度的控制,或者你想要实现某种形式的连接池,你可以考虑使用第三方库,如django-db-connection-pool,它提供了对Django数据库连接池的支持。

qinshi501的博客 2652

Django 操作MySQL数据库

Django 简单使用MySQL

CY的博客 5825

使用Django连接MySQL的详细教程

在 Django 中,我们使用模型(model)来定义数据结构。打开myapp目录下的models.py# 添加其他字段...以上代码定义了一个名为MyModel的模型,它包含两个字段field1和field2。你可以根据需要添加其他字段。

ThDebug的博客 651

Python Django 之连接 Mysql 数据库详解

Python Django 之连接 Mysql 数据库详解

鱼丸丶粗面 6348

[Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--地图(一)

上面3章图是完成后的效果图 游戏已完成,除了英雄外,基本还原了90%的游戏内容,一共13关,20种防御塔,30+种敌人,如上图,以假乱真吧 下面从地图模块起介绍我的方法,如有更好的方法,请留言一起讨论,游戏资源下载原版游戏数据包,解压即可 推荐一款软件,TextureUnpackerRelease1.04可以分割plist形式的图片,提高效率 经过一个月学习也发现之前有很多化简为繁的错误

7172

时频分析之STFT:短时傅里叶变换的原理与代码实现(非调用Matlab API)

STFT function [STFT, f, t] = mystft(x, win, hop, nfft, fs) % function: [STFT, f, t] = stft(x, win, hop, nfft, fs) % % Input: % x - signal in the time domain % win - analysis window function % hop - hop size % nfft - numb

frostime的博客 13万+

django 直接连接mysql_手把手教你使用Django如何连接Mysql

pymysql.install_as_MySQLdb如果没有安装pymysql,记得安装一下,命令:pip install pymysql。迁移数据库如果上述都没问题了,那我们来写个小Demo来跑一下试试。迁移数据库流程。创建app(Django必须依赖app才能创建表)。settings.py 中添加创建的app。迁移。1.创建app(Django必须依赖app才能创建表)首先呢,我们需要在Dj...

weixin_33138569的博客 1371

scRNA-seq | 吐血整理的单细胞入门教程(从原理到代码实操)(二)

scRNA-seq | 吐血整理的单细胞入门教程(从原理到代码实操)(二)

m0_72224305的博客 4306

Django的mysql数据库连接

实现在vscode工具下,让Django与Mysql中的数据库连接,并且进行数据的添加

m0_71233415的博客 8593

Unity集成阿里Qwen2.5-Omni全模态大模型实战:语音交互与多模态AI开发指南

本文详细介绍了在Unity中集成阿里Qwen2.5-Omni全模态大模型的实战指南。通过C#脚本开发,实现语音交互、图像分析等多模态AI功能,涵盖API调用、音频处理、流式响应解析等核心步骤,为游戏、虚拟人等Unity应用提供沉浸式智能交互解决方案。

weixin_29005499的博客 315

AgentScope深入分析-ReActAgent

ReActAgent 是 AgentScope 框架中最核心的智能体实现,它完美诠释了"推理-行动"(Reasoning-Acting)循环的精髓。本文将深入分析 ReActAgent 的类继承关系、核心执行流程,以及状态管理、钩子机制、实时介入等关键技术点。通过阅读本文,你会理解智能体如何与模型交互、如何执行工具、如何处理中断,以及这些机制背后的设计考量。模块化:通过组合不同的组件(模型、格式化器、工具集、记忆)来构建智能体透明性:所有关键流程都对开发者可见,可以精确控制可扩展性。

842

使用 Django 连接 MySQL 数据库

在 Django 中,我们可以使用 MySQL 作为后端数据库来存储数据。在 Django 项目中,您可以通过模型(Model)来定义数据结构并与 MySQL 数据库交互。通过以上操作,您可以在 Django 项目中利用定义好的模型与 MySQL 数据库进行数据的增删改查操作。现在您可以在 Django 中使用该模型与 MySQL 数据库进行数据交互。首先,确保已经安装了 Django 和 MySQL 客户端驱动。这两个命令将会在 MySQL 数据库中创建相应的表结构。首先,在 Django 应用的。

Code掘金的博客 1832

【信息系统项目管理师】第1章:信息化发展 考点梳理

本文主要详细梳理高项:信息化、新型基础设施建设、两化融合、数字中国、数字化转型与元宇宙等内容。

数据知道的博客 8580

Django连接MySQL

3.运行命令,注意前提是下载了mysqlclient库,并且app已注册。1.修改settings.py,连接数据库,注释默认配置,输入新配置。2.定义models.py文件,创建数据库表。2.输入密码登入数据库,修改一个简单的密码。21.服务文件权限选择no,点击下一步。9.打开后,选择自定义,点击next。10.选择要安装的版本,点击右箭头。20.windows服务默认下一步。12.修改完成后,点击下一步。15.安装完成后点击下一步。6.登录Oracle账户。16.产品配置默认下一步。

George的博客 2403

PostgreSQL性能优化:如何搭建监控体系?

本文系统讲解如何构建企业级PostgreSQL监控体系,覆盖四大核心维度:基础设施层、数据库实例层、会话与查询层、对象与存储层。通过Prometheus+Grafana+ELK等工具链实现指标采集、可视化与告警闭环管理,详细解析关键监控指标、部署方法及告警策略设计,帮助DBA快速定位慢查询、连接泄漏、存储膨胀等典型故障,构建"看得见、管得住、防得早"的数据库运维能力。

数据知道的博客 2234

[ 人力资源面试篇 ] HR 面试题分析详解大集合,看完直怼面试官(二)

那么在这个系列的文章中,我们聊到 HR 面谈什么?并且总结了五十个常见的人力资源面试题,在这里分享给大家。

qq_51577576的博客 1380

手把手教你在win10系统下搭建python3_django_mysql的环境配置

要想搭建上述环境,大方向来说分为四步: 安装python3 安装django 安装mysql 配置mysql与django连接 一、安装python3 1.去python的官网下载最新版本的python https://www.python.org/downloads 2.一路默认配置安装就好 3.在dos窗口输入python,如果返回如下,则证明已经安装成功。 返回版本信息等内...

D-R0s1的博客 3165

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Django使用mysql连接池_django 重写 mysql 连接库实现连接池

django 重写 mysql 连接库实现连接池问题django 项目使用 gunicorn + gevent 部署,并设置 CONN_MAX_AGE 会导致 mysql 数据库连接数飙升,在高并发模式可能会出现 too many connections 错误。该怎么解决这个问题呢?首先看下 django 源码,找到问题的根源。本文 django 版本为 2.2.3。问题分析首先查看连接部分源码:...

weixin_28749997的博客 842

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Django db使用MySQL连接池

Django db使用MySQL连接池 Sep 25 2016 Django db模块本身不支持MySQL连接池,只有一个配置CONN_MAX_AGE连接最大存活时间,如果WSGI服务器使用了线程池技术,会达到连接复用的效果。但是如果WSGI服务如果是每个请求都创建新的线程,那么这个配置没有任何效果,因为连接保存在Thread.local()名称空间中,在不同的线程中不能复用。 ...

diaofu7552的博客 420

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Django使用mysql连接池_Django db使用MySQL连接池

Django db使用MySQL连接池Sep 25 2016Django db模块本身不支持MySQL连接池,只有一个配置CONN_MAX_AGE连接最大存活时间,如果WSGI服务器使用了线程池技术,会达到连接复用的效果。但是如果WSGI服务如果是每个请求都创建新的线程,那么这个配置没有任何效果,因为连接保存在Thread.local()名称空间中,在不同的线程中不能复用。在上一篇greentor...

weixin_36182029的博客 719

Django 连接mysql数据库 使用Navicat连接

Django 连接mysql数据库 使用Navicat连接

2302_76314178的博客 1023

django中mysql连接池,Django db使用MySQL连接池

Django db使用MySQL连接池Sep 25 2016Django db模块本身不支持MySQL连接池,只有一个配置CONN_MAX_AGE连接最大存活时间,如果WSGI服务器使用了线程池技术,会达到连接复用的效果。但是如果WSGI服务如果是每个请求都创建新的线程,那么这个配置没有任何效果,因为连接保存在Thread.local()名称空间中,在不同的线程中不能复用。在上一篇greentor...

weixin_39950812的博客 464

使用django连接数据库

1、先下载安装pymysql ---------pip3 install pymysql 之后pip list查看一下是否安装成功,要安装在python3里面,否则不行。 在项目同名文件夹里的init里面写上这两句代码 import pymysql # 导入第三方模块,用来操作mysql数据库 pymysql.install_as_MySQLdb() 需要注意的是,如果你import ...

w_gold_qin的博客 2093
上一篇: 最全的Pycharm debug技巧,来袭!
下一篇: 2020年Python优质原创文章年度榜单!
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值