手把手教你使用Django如何连接Mysql
共 2683字,需浏览 6分钟
·
2021-01-23 17:10
前言
这次咱们来简述一下,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
配置,添加以下配置。
复制以下代码
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来跑一下试试。
迁移数据库流程。
创建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。
python manage.py makemigrations
python manage.py migrate
生成的表。
会生成很多其他表,不用管他,只要咱们要的。
我这里直接手动向刚刚创建的表里面添加一些数据。
展示内容
展示内容大概分为以下几个部分。
编写url。
编写视图(views)。
编写html(templates)。
启动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,前端开发等优质的学习资源和技术,分享一些程序员圈的新鲜趣事。
年度爆款文案
点这里,获取腾讯课堂畅学卡