django学习入门系列之第十点《django中数据库操作--创建与删除表》

embedded/2024/12/22 0:01:45/

文章目录

  • django创建与删除表
    • 开始创建表
    • 创建指令
    • 新增表
    • 删除表
    • 删除列
    • 新增列
    • 修改报错提示语言
    • 总结
  • 往期回顾


django_3">django创建与删除表

  • 删除表

  • 创建表

  • 修改表

  • 操作目录

在这里插入图片描述

开始创建表

python">class text_into(models.Model):name = models.CharField(max_length=32)password = models.CharField(max_length=64)age = models.IntegerField()
  • 解析
django给你创建的表名是
APP的名称 + 类的名称(自动转化成小写)
如:app01_text_into
python">models.CharField(max_length=32):他的意思是创建一个varchar类型(32位的)name = varchar(32) 是一样的models.IntegerField()他的意思是创建一个int类型age = int() 是一样的# 除此之外。他还会给自动给你创建id  id bigint auto_increment primary key,django 会根据这些类来进行“翻译”

创建指令

  • 之后再执行命令才能真正的创建

注意:这个app要提前注册,不然他不会给你提交到数据库

python manage.py makemigrations
python manage.py migrate
  • 创建后
    • 为什么会有那么多的表,是因为他顺便帮我们把那些默认的表都生成了
+----------------------------+
| Tables_in_unicom           |
+----------------------------+
| admin                      |
| app01_text_into            |
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
+----------------------------+
mysql> desc app01_text_into;
+----------+-------------+------+-----+---------+----------------+
| Field    | Type        | Null | Key | Default | Extra          |
+----------+-------------+------+-----+---------+----------------+
| id       | bigint      | NO   | PRI | NULL    | auto_increment |
| name     | varchar(32) | NO   |     | NULL    |                |
| password | varchar(64) | NO   |     | NULL    |                |
| age      | int         | NO   |     | NULL    |                |
+----------+-------------+------+-----+---------+----------------+

新增表

直接在那文件中创建新的类就行了models.py,并重新执行命令

删除表

直接在那文件中注释/删除新的类就行了models.py,并重新执行命令

删除列

直接删就行

新增列

在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定新增列对应的数据

  • 新增列的时候,django会应为怕数据库里面又值,会给你警示
Please select a fix:1) Provide a one-off default now (will be set on all existing rows with a null value for this column)2) Quit and manually define a default value in models.py.
选择1 则会让你输入一个值   选择2,退出操作选择1并输入一个值的话
那个值会填充满那一列填完之后再python manage.py migrate创建就行了

在这里插入图片描述

  • 或者直接添加默认值
python">age = models.IntegerField(default=1)
  • 或者让这个值默认为空
data = models.IntegerField(null=True, blank=True)

这样创建这一列就默认为空了

修改报错提示语言

LANGUAGE_CODE = 'zh-hans'

在这里插入图片描述

总结

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

  • 在models.py文件中操作类即可
  • 命令
python manage.py makemigrations
python manage.py migrate

往期回顾

1.【快速开发网站】
2.【浏览器能识别的标签1】
3.【浏览器能识别的标签2】
4.【浏览器能识别的标签3】
5.【浏览器能识别的标签4】
6.【案例1:用户注册】
7.【案例2:用户注册改进】
8.【快速了解 CSS】
9.【常用选择器概念讲解】
10.【CSS基础样式介绍1】
11.【CSS基础样式介绍2】
12.【CSS基础样式介绍3】
13.【CSS基础样式介绍3】
14.【案例 小米商城头标】
15.【案例 小米商城头标总结】
16.【案例 小米商城二级菜单】
17.【案例 商品推荐部分】
18.【伪类简单了解】
19.【position】
20.【案例 小米商城中app图标代码】
21.【边框及总结】
22.【BootSrap初了解】
23.【BootSrap的目录栏】
24.【BootSrap的栅格系统】
25.【案例 博客案例】
26.【案例 登录】
27.【案例 后台管理样例】
28.【图标】
29.【BootStrap依赖】
30.【javascript初了解】
31.【jJavaScript的变量】
32.【JavaScript的字符串类型】
33.【JavaScript的数组介绍】
34.【案例 动态数据】
35.【javascript 对象(字典)】
36.【案例 动态表格】
37.【Javascript的条件语句和函数】
38.【DOM初了解】
39.【DOM的事件了解】
40.【jQuery初了解】
41.【jQuery寻找标签】
42.【jQuery寻找标签2】
43.【jQuery寻找标签(间接寻找)】
44.【案例 菜单的切换】
45.【案例 只能打开一个菜单】
46.【jQuery 简单操作】
47.【案例 动态创建数据】
48.【案例 点击获取文本】
49.【案例 点击删除文本】
50.【案例 表格操作】
51.【案例 添加页面】
52.【初识MySQL】
53.【MySQL命令介绍一】
54.【MySQL命令介绍二】
55.【MySQL命令介绍三】
56.【案例:员工管理】
57.【案例 Flask+MySQL新增用户】
58.【案例 Flask+MySQL查询所有用户】
59.【初识 django
60.【django的快速上手】
61.【django的模板语法】
62.【django的获取请求与响应】
63.【案例 用户登录】
64.【django数据库操作】


http://www.ppmy.cn/embedded/105401.html

相关文章

三级_网络技术_54_应用题

一、 请根据下图所示网络结构回答下列问题。 1.填写路由器RG的路由表项。 目的网络/掩码长度输出端口__________S0(直接连接)__________S1(直接连接)__________S0__________S1__________S0__________S1 2.如果将10.10.67.128/2…

C++复习day02

一、库函数的模拟实现 1.memcpy的使用和模拟 首先先来了解一下memcpy函数的作用是什么? void * memcpy ( void * destination, const void * source, size_t num );函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。这个函数在…

电脑连接公司服务器记住了账户密码,怎么换账户呢?

今天,有同事找到我,说共享连不上去了,我去试了下,知道了原因:由于我将之前使用这台电脑的人的账户在后台禁用了,所以这台电脑连不上服务器了,也不是连不上,而是之前是记住了账户密码…

Python使用总结之Flask-SocketIO介绍

Python使用总结之Flask-SocketIO介绍 一、Flask-SocketIO简介 Flask-SocketIO 是一个基于 Flask 的扩展库,用于在 Flask 应用中实现 WebSocket 通信。WebSocket 是一种双向通信协议,允许服务器和客户端之间在不重新建立连接的情况下进行实时数据交换。这…

【SpringBoot】自动配置原理

Spring Boot 自动配置原理是 Spring Boot 提供简化 Spring 应用程序开发的核心特性之一。 它使得开发者无需编写大量的配置代码就能让应用程序具有很多常见的功能。 以下是 Spring Boot 自动配置的基本原理和工作流程: 通过 SpringBootConfiguration 引入了 Enabl…

net、udp、tcp

Makefile的main.c文件中的全局变量SONG song,要在fun.c文件里面写成extern SONG song 编译方法 第一次编写 或 网络编程 物理层的网线规定有八根,颜色不一样,功能不一样,光猫把光信号转换成电信号,光纤10Gb WiFi叫无线局域网,一般也就50米左右,手机流量叫蜂窝网络,…

数据库水平分表方案

数据库分表有很多策略,如下: 数据库分表是处理大型数据库中数据量过大的一种常见策略,它可以提高查询性能、减少锁竞争、降低维护成本等。以下是一些常见的数据库分表方案: 1. **垂直分表(Vertical Partitioning&…

【Python机器学习】NLP词频背后的含义——隐性语义分析

隐性语义分析基于最古老和最常用的降维技术——奇异值分解(SVD)。SVD将一个矩阵分解成3个方阵,其中一个是对角矩阵。 SVD的一个应用是求逆矩阵。一个矩阵可以分解成3个最简单的方阵,然后对这些方阵求转置后再把它们相乘&#xff…