Django 连接 MySQL 数据库与 Model 定义
Django 是一个高级的 Python Web 框架,它鼓励快速开发和干净、实用的设计。Django 自带了一个强大的 ORM(对象关系映射)系统,允许开发者以 Python 类的方式操作数据库。本文将介绍如何在 Django 项目中连接 MySQL 数据库,并定义 Model。
环境准备
在开始之前,请确保你已经安装了 Python 和 Django。此外,你还需要安装 MySQL 数据库和 MySQL 的 Python 连接器 mysqlclient
。
-
安装 Django:
pip install django
-
安装 MySQL Connector:
pip install mysqlclient
配置 Django 项目以使用 MySQL
-
创建一个新的 Django 项目(如果你还没有一个):
django-admin startproject myproject cd myproject
-
编辑
settings.py
文件,找到DATABASES
设置,并修改为以下内容:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydatabase', 'USER': 'myuser', 'PASSWORD': 'mypassword', 'HOST': 'localhost', 'PORT': '3306', } }
请将
mydatabase
,myuser
,mypassword
替换为你的 MySQL 数据库信息。 -
运行以下命令来创建数据库表:
python manage.py migrate
定义 Model
Model 是 Django ORM 的核心,它定义了数据库中的表结构。下面是一个简单的 Model 示例:
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
publish_date = models.DateField()
def __str__(self):
return self.title
在这个例子中,我们定义了一个 Book
类,它有三个字段:title
, author
, 和 publish_date
。每个字段都对应数据库中的一列。
创建和使用 Model
-
首先,确保你的 app(例如
myapp
)已经在settings.py
文件的INSTALLED_APPS
列表中。 -
运行以下命令来创建数据库表:
python manage.py makemigrations python manage.py migrate
-
使用 Django shell 来创建和查询数据:
python manage.py shell
在 shell 中,你可以创建和查询数据:
from myapp.models import Book # 创建一本书 book = Book(title='Python编程', author='某作者', publish_date='2023-01-01') book.save() # 查询所有书籍 books = Book.objects.all() for book in books: print(book.title, book.author, book.publish_date)
关系图
以下是 Book
Model 的关系图:
erDiagram
book {
int id PK "Auto Increment"
string title "VARCHAR(100)"
string author "VARCHAR(100)"
date publish_date
}
结语
通过本文,你应该已经了解了如何在 Django 项目中连接 MySQL 数据库,并定义 Model。Django 的 ORM 系统提供了一个非常强大和灵活的方式来操作数据库,使得开发者可以更加专注于业务逻辑的实现。希望本文能帮助你更好地使用 Django 开发 Web 应用。