下面是关于如何使用Django 2.2连接MySQL数据库的方法的详细攻略:
安装MySQL驱动程序
连接MySQL数据库需要使用MySQL驱动程序。可以使用PyMySQL或者MySQL-connector-python等常用的MySQL驱动。
可以通过以下命令来使用PyMySQL安装MySQL驱动:
pip install pymysql
安装成功后,在Django项目的settings.py文件中添加以下代码:
import pymysql
pymysql.install_as_MySQLdb()
这个作用就是将PyMySQL伪装成MySQLdb,这样就可以通过Django使用PyMySQL来连接MySQL数据库。
配置MySQL连接信息
在Django项目的settings.py文件的DATABASES选项中,添加以下代码:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'database_name',
'USER': 'database_user',
'PASSWORD': 'database_password',
'HOST': 'database_host',
'PORT': 'database_port',
},
}
其中,'NAME'字段是数据库名称,'USER'字段是登录名,'PASSWORD'字段是密码,'HOST'字段是MySQL服务器主机名或IP地址,'PORT'字段是MySQL服务器端口号,默认是3306端口。
创建MySQL数据库
在连接MySQL数据库之前,必须先创建一个MySQL数据库,可以通过MySQL命令行工具或者phpMyAdmin等GUI工具来创建。
下面是通过MySQL命令行工具创建一个名为mydatabase的数据库:
CREATE DATABASE mydatabase;
启动MySQL服务
在连接MySQL数据库之前,必须先启动MySQL服务。可以通过以下命令来启动MySQL服务:
sudo service mysql start
示例
下面是一个简单的Django视图函数,演示如何使用Django连接MySQL数据库,获取数据并显示在页面上:
from django.shortcuts import render
from django.db import connection
def my_view(request):
cursor = connection.cursor()
cursor.execute('SELECT * FROM mytable')
results = cursor.fetchall()
context = {'results': results}
return render(request, 'myhtml.html', context)
这个函数会从名为mydatabase的数据库中获取mytable表中的所有数据,并通过render函数将数据渲染到名为myhtml.html的模板中,在浏览器中显示。
除此之外,还可以通过Django的ORM(对象关系映射)模块来操作MySQL数据库。下面是一个ORM的示例:
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=50, unique=True, blank=False, null=False)
age = models.IntegerField(blank=False, null=False)
gender = models.CharField(max_length=10, blank=False, null=False)
email = models.EmailField(max_length=100, blank=False, null=False)
phone = models.CharField(max_length=20, blank=True, null=True)
class Meta:
db_table = 'mytable'
这个模型定义了一个名为MyModel的模型,该模型对应的表名为mytable,包含了5个字段。可以通过以下命令来创建这个表:
python manage.py makemigrations myapp
python manage.py migrate
以上命令会自动在MySQL数据库中创建mytable表。可以通过以下命令来获取mytable表中的所有数据:
results = MyModel.objects.all()
可以通过以下命令来获取mytable表中年龄大于18的所有数据:
results = MyModel.objects.filter(age__gt=18)
在ORM模型中,收尾部分获取所有数据的过程中,由于我的mytabel定义在models.py中,要使用的话更应该这么写:
from myapp.models import MyModel
results = MyModel.objects.all()
上述就是 Django 2.2 连接 MySQL 数据库的完整攻略,具体内容包括安装MySQL驱动程序、配置MySQL连接信息、创建MySQL数据库和启动MySQL服务,以及两个示例的说明。希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django2.2版本连接mysql数据库的方法 - Python技术站