程序员

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

作者:admin 2021-04-15 我要评论

前言 这次咱们来简述一下,Django如何连接Mysql。 默认情况下,Django连接的是自己带的sqlite数据库。 这种数据库好处是方便,不需要远程连接,打包项目挪到其他...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

前言

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

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

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

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

连接Mysql

Django连接Mysql分三步

  • Mysql提前创建好数据库。
  • 修改Django的settings.py文件。
  • 修改项目文件夹下的__init.py文件。

1.Mysql提前创建好数据库

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

2.修改Django的settings.py文件

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

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

复制以下代码

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

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

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

复制以下代码

  1. import pymysql 
  2.  
  3. pymysql.install_as_MySQLdb() 

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

迁移数据库

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

迁移数据库流程。

  • 创建app(Django必须依赖app才能创建表)。
  • settings.py中添加创建的app。
  • 迁移。

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

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

python manage.py startapp web

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

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

3.迁移

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

  1. python manage.py makemigrations 
  2. python manage.py migrate 

生成的表。

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

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

展示内容

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

  • 编写url。
  • 编写视图(views)。
  • 编写html(templates)。
  • 启动web。

1.编写url

  1. urls.py 

  1. urlpatterns = [ 
  2.     path('admin/', admin.site.urls), 
  3.     path('student_list', views.student_list), 

2.编写视图(views)

  1. web/views.py 

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

3.编写html(templates)

  1. templates/student.html 
  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.     <meta charset="UTF-8"
  5.     <title>Title</title> 
  6. </head> 
  7. <body> 
  8. <table border="1"
  9.     <thead> 
  10.     <tr> 
  11.         <td>id</td> 
  12.         <td>姓名</td> 
  13.         <td>年龄</td> 
  14.         <td>性别</td> 
  15.         <td>年纪</td> 
  16.     </tr> 
  17.     </thead> 
  18.     <tbody> 
  19.     {% for student in student_queryset %} 
  20.         <tr> 
  21.             <td>{{ student.id }}</td> 
  22.             <td>{{ student.name }}</td> 
  23.             <td>{{ student.age }}</td> 
  24.             <td>{{ student.gender }}</td> 
  25.             <td>{{ student.grade }}</td> 
  26.         </tr> 
  27.     {% endfor %} 
  28.  
  29.     </tbody> 
  30. </table
  31. </body> 
  32. </html> 
id 姓名 年龄 性别 年纪
{{ student.id }} {{ student.name }} {{ student.age }} {{ student.gender }} {{ student.grade }}

4.启动web

命令

  1. 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爬虫与数据挖掘」,可以通过以下二维码关注。转载本文请联系Python爬虫与数据挖掘公众号


本文转载自网络,原文链接:https://mp.weixin.qq.com/s/nttS88RquA4geqVCUa8rqA

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 四两拨千斤——你不知道的VScode编码Ty

    四两拨千斤——你不知道的VScode编码Ty

  • 我是如何在 Vue 项目中做代码分割的

    我是如何在 Vue 项目中做代码分割的

  • position:sticky 粘性定位的几种巧妙应

    position:sticky 粘性定位的几种巧妙应

  • 从零到一搭建React组件库

    从零到一搭建React组件库

腾讯云代理商
海外云服务器