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

文章目录


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中数据库操作】

相关推荐
万邦科技Lafite14 分钟前
京东按图搜索京东商品(拍立淘) API (.jd.item_search_img)快速抓取数据
开发语言·前端·数据库·python·电商开放平台·京东开放平台
丁浩66643 分钟前
Python机器学习---6.集成学习与随机森林
python·随机森林·机器学习
金仓拾光集1 小时前
__金仓数据库平替MongoDB实战:从多模兼容到高可用落地__
数据库·mongodb·数据库平替用金仓·金仓数据库
北邮-吴怀玉1 小时前
6.1.2.2 大数据方法论与实践指南-离线任务SQL 任务开发规范
大数据·数据库·sql
流烟默1 小时前
MongoDB索引创建语法分析
数据库·mongodb
金仓拾光集1 小时前
__国产化转型实战:制造业供应链物流系统从MongoDB至金仓数据库迁移全指南__
数据库·mongodb·数据库平替用金仓·金仓数据库
初学者_xuan1 小时前
零基础新手小白快速了解掌握服务集群与自动化运维(十五)Redis模块-Redis数据库基础
运维·数据库·自动化
小马哥编程1 小时前
【软考架构】案例分析:MongoDB 如何存储非结构化数据以及其矢量化存储的优点。
数据库·mongodb·架构
默 语1 小时前
MySQL中的数据去重,该用DISTINCT还是GROUP BY?
java·数据库·mysql·distinct·group by·1024程序员节·数据去重
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [kernel][time]alarmtimer
linux·笔记·学习