上一节中讲了Python3.7搭建Django框架项目 ,并且项目能够运行起来,Django框架中默认配置的数据库是sqlite,sqlite数据库虽然小巧,但是对于大型项目时sqlite就会有瓶颈,性能远不如mysql以及其他的关系型数据库,下面就介绍Django配置MySql数据库,数据库配置是在Python3.7搭建Django框架项目中进行的,代码可以从这个项目中下载。
1、首先安装mysql,mysql安装可以参考linux中安装mysql,window下面可以参考其他的教程。
2、在项目的settings.py文件中配置mysql的连接信息:把之前配置的sqlite配置信息替换
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': '3306',
'NAME': 'DjangoTest',
'USER': 'root',
'PASSWORD': 'xxxx',
'OPTIONS': {
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
}
}
}
DATABASES是设置MySQL的信息,NAME是数据库名,USER是用户名,PASSWORD是登录密码(填写你的mysql数据库密码),HOST是localhost或者127.0.0.1,PORT是端口号(默认是3306)
在settings.py同济目录的__init__.py文件中增加下面代码,导入mysql的配置
# coding=utf-8
import pymysql
pymysql.install_as_MySQLdb()
3、下面要在mysql中创建数据库,在mysql中创建DjangoTest库,不用建表,Django框架会帮我们创建表
4、在myapp下的models.py里添加下面代码
from django.db import models
# Create your models here.
class Grade(models.Model):
name = models.CharField(max_length=20)
studentnum = models.IntegerField()
girlnum = models.IntegerField()
boynum = models.IntegerField()
class Meta:
db_table='grade'
这里表示创建一个model对象,创建一张名字叫grade的表,grade表中有name、studentnum 、girlnum 、boynum 字段,最后两行表示创建的表名为grade,没有最后两行也可以创建表,创建的表名会带有前缀“myapp_”
5、都创建好后,在终端使用下面命令做数据迁移
python3 manage.py makemigrations #生成迁移
python3 manage.py migrate #执行迁移
执行成功后会生成0001_initial.py迁移文件,如下如
mysql中生成了多张表,包括grade表
在grade表中随便添加几条信息
6、在App下views.py中添加下面函数
from myapp.models import Grade
def getGrades(request):
# 获取所有班级
grades = Grade.objects.all()
context = {'gradess':grades}
return render(request,'Grades.html',context)
在urls.py文件中增加getGrades的路由
path('getGrades',views.getGrades),
7、templates下Grades.html文件,文件中添加下面内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>班级系统</title>
</head>
<body>
<h1>数据库信息</h1>
<h2>班级数据统计</h2>
<ul>
{% for grade in grades %}
<li>名称:{{ grade.name }} ,数量:{{ grade.studentnum}}</li>
{% endfor %}
</ul>
</body>
</html>
这就大功告成了,运行sudo python3 manage.py runserver 0.0.0.0:80,
浏览器中输入ip/getGrades,数据库中的信息能够查询出
有什么问题大家可以评论或者关注留言,我们相互学习交流。
项目源代码github地址:https://github.com/zhaochan/mysite/tree/addMysql