Django之旅:第五节--Mysql数据库操作(一)

news/2025/3/30 10:47:33/

Django开发操作数据库更简单,内部提供了ORM框架

一、安装第三方模块

pip install mysqlclient

注:最新的django框架需要使用mysqlclient模块,之前pymysql模块与django框架有编码兼容问题。

二、ORM

        1、ORM可以帮助我们做两件事:

            创建、修改、删除数据库中的表(不用写sql语句)(没有办法创建数据库)。

            操作表中的数据(不用写sql语句)

        2、创建数据库

                2.1、启动Mysql服务

                2.2、创建数据库

create database 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#操作数据库指令#登录
mysql -u root(mysql用户名) -p#查看数据库
show databases;

三、Django连接数据库

在setting.py文件中进行配置和修改

DATABASES = {'default': {# 'ENGINE': 'django.db.backends.sqlite3',# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),'ENGINE': 'django.db.backends.mysql','NAME': 'index_day',  # 数据库'USER': 'root','PASSWORD': '12345678','HOST': '127.0.0.1',  # mysql那台机器的ip'PORT': '3306',}
}

四、Django操作表

        1、创建表(models.py文件中操作)


from django.db import mmodelsclass UserInfo(models.Model):name=models.CharFIeld(max_length=32)password=models.CharFIeld(max_length=64)age=models.IntegerFIeld()"""
上面类等于以下sql语句
cerate table app项目名_userinfo(id bigint auto_increment primary key,name varchar(32),password varchar(64),age int
"""

        完成以上,需要执行以下命令,生成表(app需要提前注册)

python manage.py makemigrations
python manage.py migrate

        2、删除表


from django.db import mmodelsclass UserInfo(models.Model):name=models.CharFIeld(max_length=32)password=models.CharFIeld(max_length=64)#age=models.IntegerFIeld()

       注:只要把对应的类或者字段注销或者删除,在执行以下

python manage.py makemigrations
python manage.py migrate

        3、修改表

        注:在修改表,添加字段如果表本身有数据,需要默认值,或者设置默认可以为空。

                如果类里面,字段不设置默认值,在执行命令行代码时也会提示,属于默认值或者退出


from django.db import mmodelsclass UserInfo(models.Model):name=models.CharFIeld(max_length=32)password=models.CharFIeld(max_length=64)#age=models.IntegerFIeld()data=models.IntegerField(defaul=2)#新字段默认为值为2content=models.IntegerField(null=True,blank=True)#新字段默认为值为空

        再次执行该命令:

python manage.py makemigrations
python manage.py migrate

五、总结:

        在以后的开发中如果想要对表结构进行调整:

        在models.py文件中操作类就可以了

        在执行命令:

python manage.py makemigrations
python manage.py migrate

        


http://www.ppmy.cn/news/1583562.html

相关文章

MySQL大小写敏感的解决方案

MySQL大小写敏感的解决方案 一、MySQL大小写敏感的控制 mysql是通过lower_case_table_names参数来控制大小写敏感的,该参数在[mysqld]结点下,如下图所示 注: ①关于lower_case_table_names参数对表名称或数据库名称大小写敏感的控制。 ② Unix下默认…

基于QT(C++)实现用户界面系统

用户界面系统 本次作业实现了随机化芯片设计方法中芯片的手动设计与芯片流速与浓度的关联计算与图形化显示,基于 Qt 设计了一个 Microfluidic Chip Simulation 用户界面系统。 具体功能 用户可以通过工具栏上的 Create 新建所需芯片,可自定义的参数包…

基于Spring Boot + Vue的银行管理系统设计与实现

基于Spring Boot Vue的银行管理系统设计与实现 一、引言 随着金融数字化进程加速,传统银行业务向线上化转型成为必然趋势。本文设计并实现了一套基于Spring Boot Vue的银行管理系统,通过模块化架构满足用户、银行职员、管理员三类角色的核心业务需求…

“自动驾驶背后的数学” 专栏导读

专栏链接: 自动驾驶背后的数学 专栏以“自动驾驶背后的数学”为主题,从基础到深入,再到实际应用和未来展望,全面解析自动驾驶技术中的数学原理。开篇用基础数学工具搭建自动驾驶的整体框架,吸引儿童培养兴趣&#xff0…

如何自动规整化(格式化)HTML

如果你想要自动规整化(格式化)HTML,可以使用以下方法: 方法 1:使用 VS Code 进行 HTML 格式化(推荐) 步骤 安装 Visual Studio Code打开你的 HTML 文件按下 Shift Alt F(Windows…

Maven工具学习使用(二)——Maven基础用法

pom常见属性说明 详细见官方文档说明 https://maven.apache.org/ref/3.8.6/maven-model/maven.html#class_releases <modelVersion>4.0.0</modelVersion> POM模型的版本 <groupId>org.apache.maven.plugins</groupId> 项目属于哪个组&#xff…

洛谷题单1-B2025 输出字符菱形-python-流程图重构

题目描述 用 * 构造一个对角线长 5 5 5 个字符&#xff0c;倾斜放置的菱形。 输入格式 没有输入要求。 输出格式 如样例所示。用 * 构成的菱形。 输入输出样例 #1 输入 #1 输出 #1 **** *********方式-前半区推导&#xff0c;后半区逆序 代码 class Solution:static…

无人机数据处理系统设计要点与难点!

一、系统设计要点 无人机数据处理系统需要高效、可靠、低延迟地处理多源异构数据&#xff08;如影像、传感器数据、位置信息等&#xff09;&#xff0c;同时支持实时分析和长期存储。以下是核心设计要点&#xff1a; 1.数据采集与预处理 多传感器融合&#xff1a;集成摄像头…