MySQL和Django的简介
MySQL是一个常用的关系型数据库管理系统,而Django是一个使用Python编写的Web框架。在Django中,要使用MySQL进行数据存储和查询,需要选择合适的驱动程序。pymysql是一个流行的MySQL驱动程序,它能够与Django无缝集成。
阅读更多:MySQL 教程
安装和配置pymysql
在使用pymysql之前,需要先安装和配置它。我们可以采用pip工具快速安装pymysql:
pip install pymysql
然后,在Django的settings.py文件中,将pymysql设置为默认的数据库驱动程序:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'your_database_name',
'USER': 'your_database_user',
'PASSWORD': 'your_database_password',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'charset': 'utf8mb4',
'sql_mode': 'traditional',
'use_unicode': True,
'driver': 'pymysql',
},
}
}
创建数据库表和数据模型
在使用MySQL之前,需要先创建数据库表和数据模型,以便存储和查询数据。首先,在MySQL中创建一个名为“django”的数据库:
CREATE DATABASE django CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
然后,在Django的models.py文件中,定义数据模型,并在MySQL中创建相应的数据表:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
published_date = models.DateField()
price = models.DecimalField(max_digits=5, decimal_places=2)
CREATE TABLE book (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(100) NOT NULL,
published_date DATE NOT NULL,
price DECIMAL(5,2) NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
查询和操作数据
在创建完数据模型和数据表之后,就可以通过Django和pymysql进行数据查询和操作了。以下是一些常用的示例:
查询所有数据
from myapp.models import Book
books = Book.objects.all()
查询指定条件的数据
from myapp.models import Book
# 查询作者为“John”的书籍
books = Book.objects.filter(author='John')
# 查询发行日期在2019年之前的书籍
books = Book.objects.filter(published_date__lt='2019-01-01')
添加新数据
from myapp.models import Book
book = Book(title='A Book', author='John', published_date='2022-01-01', price=19.99)
book.save()
更新数据
from myapp.models import Book
book = Book.objects.get(pk=1)
book.title = 'New Title'
book.author = 'Mary'
book.save()
删除数据
from myapp.models import Book
book = Book.objects.get(pk=1)
book.delete()
总结
在使用MySQL和Django时,pymysql是一个非常有用的驱动程序,能够帮助我们快速地实现数据存储和查询功能。通过本文的介绍,我们学习了如何安装和配置pymysql,创建数据库表和数据模型,以及执行常见的数据查询和操作。希望本文对您有所帮助,谢谢!