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

击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

故关衰草遍,离别自堪悲。

前言

这次咱们来简述一下,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

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

想学习更多关于Python的知识,可以参考学习网址:http://pdcfighting.com/,点击阅读原文,可以直达噢~

------------------- End -------------------

往期精彩文章推荐:

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值