Python3.7中,Django配置MySql数据库

上一节中讲了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框架会帮我们创建表
mysql中创建DjangoTest库
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值