django连接mysql数据库及建表操作实例详解
知识点概述: 本文主要介绍了Django框架如何连接MySQL数据库、进行建表操作以及创建和查询数据表的相关技巧。下面将详细展开这些知识点。 1. Django连接MySQL数据库的配置 在Django框架中,为了连接MySQL数据库,需要在项目的`settings.py`文件中进行相应的配置。需要安装MySQL的适配器,通常使用`pymysql`库,并通过`install_as_MySQLdb()`方法将其安装为MySQLdb。然后,在`DATABASES`字典中指定默认数据库的配置信息,这包括数据库引擎、数据库名称、主机地址、端口号、用户名以及密码等。具体配置如下: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 's22', # 数据库名称,需要预先创建 'HOST': "***.*.*.*", 'PORT': 3306, 'USER': "root", 'PASSWORD': "123", # 密码需用引号包围 } } ``` 2. Django中的静态文件配置 静态文件在Django项目中也很重要,通常用于存放如CSS、JavaScript等资源。需要在`settings.py`中设置静态文件的基本URL和存放路径。例如: ```python STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), os.path.join(BASE_DIR, "static99"), ] ``` 3. Django项目与应用的管理 Django通过应用程序(App)组织项目结构,而每个应用都可以有自己的模型、视图、模板等。创建一个新的应用可以通过Django的`manage.py`工具完成。例如,创建一个名为`app01`的应用,操作如下: ```shell python manage.py startapp app01 ``` 创建应用后,需要在`settings.py`文件中的`INSTALLED_APPS`配置项里添加新创建的应用,以便Django能够识别并加载它。 4. Django中的ORM对象关系映射 在Django框架中,数据表的操作是通过对象关系映射(Object-Relational Mapping,简称ORM)实现的。通过定义Python类并继承自`django.db.models.Model`,可以创建出数据库中的表以及表中字段。例如,创建一个包含`id`主键和`title`字段的`Book`模型: ```python from django.db import models class Book(models.Model): # 定义一个自增的id主键 id = models.AutoField(primary_key=True) # 定义一个最大长度为32的varchar字段 title = models.CharField(max_length=32) ``` 5. Django模型的迁移操作 在定义了模型后,需要通过迁移命令将模型的变化应用到数据库中。首先使用`makemigrations`命令来检测`app/models.py`文件的改动,并自动生成迁移文件。然后使用`migrate`命令,将上面的改动翻译成SQL语句,然后在数据库中执行这些SQL语句,从而完成表结构的创建。具体操作如下: ```shell python manage.py makemigrations python manage.py migrate ``` 执行完迁移操作后,可以在MySQL数据库中查看新创建的表。通过执行`show tables;`命令,可以确认`app01_book`表是否已经成功创建。 总结: 本文详细介绍了Django框架连接MySQL数据库、创建应用、定义模型并进行数据库迁移操作的全过程。Django通过ORM简化了数据库操作,使得开发者能够以编写Python代码的方式处理数据库,同时其迁移机制则为数据库结构的变更管理提供了便利。了解并掌握这些知识点,对开发使用Django框架的Web应用具有重要意义。
- 粉丝: 7
- 资源: 953
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot和Vue的后台管理系统.zip
- 用于将 Power BI 嵌入到您的应用中的 JavaScript 库 查看文档网站和 Wiki 了解更多信息 .zip
- (源码)基于Arduino、Python和Web技术的太阳能监控数据管理系统.zip
- (源码)基于Arduino的CAN总线传感器与执行器通信系统.zip
- (源码)基于C++的智能电力系统通信协议实现.zip
- 用于 Java 的 JSON-RPC.zip
- 用 JavaScript 重新实现计算机科学.zip
- (源码)基于PythonOpenCVYOLOv5DeepSort的猕猴桃自动计数系统.zip
- 用 JavaScript 编写的贪吃蛇游戏 .zip
- (源码)基于ASP.NET Core的美术课程管理系统.zip