社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

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

菜鸟学Python • 4 年前 • 557 次点击  

前言

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

<html lang="en"><head>    <meta charset="UTF-8">    <title>Titletitle>head><body><table border="1">    <thead>    <tr>        <td>idtd>        <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,前端开发等优质的学习资源和技术,分享一些程序员圈的新鲜趣事。





年度爆款文案



点这里,获取腾讯课堂畅学卡

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/106655
 
557 次点击