Django——创建数据库和表

Django拥有内置的ORM框架(object relational mapping),通过对象操作数据库。

模型是项目的数据来源,其中每一个模型都是一个python类,并且全部继承django.db.models.Model类

  • 定义django.db.models.Model的子类,创建数据库表;
  • 定义表中的字段,类里面的属性;
  • 类中的方法就是对数据库进行数据的增删改查等操作;
  • 模型的文件名默认是models.py;

在使用指令创建项目时,django默认不会自动创建模型文件;在创建应用时,会主动创建模型文件。

创建模型

项目的数据存在数据库中,每模型文件中的一个子类都是一个数据表

创建一个phoneNumber类,定义字段类型为models.CharField的两个字段,表示的类型是varchar

from django.db import modelsclass phoneNumber(models.Model):  # 每一个类都必须继承models.Modelname = models.CharField(max_length=10, verbose_name='名称')number = models.CharField(max_length=11, verbose_name='电话号码')

在模型文件中定义完类后,需要配置模型,在项目的配置文件setting.py中修改INSTALLED_APPS
DATABASES变量的值

INSTALLED_APPS = [...'创建的应用名'   # 添加模型文件所在的位置
]DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',}
}

Django中默认的数据库是SQLite3,同时也支持MySQL、Oracle和PostgreSQL等数据库

设置数据库为MySQL

DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'mysqldb','USER': '','PASSWORD': '','HOST': '',     # 数据库所在的IP地址,为空表示127.0.0.1'POST': '',     # 连接端口号,为空表示默认端口号3306}
}

更新数据

在任何数据改动后,都需要执行更新数据的操作,在Django中叫做数据库迁移

python manage.py makemigrations 应用名称    # 在应用模块进行数据的更新
python manage.py migrate                   # 数据更新到数据库中
  • 在进行数据更新时,Django会自动生成一个001_initial.py迁移文件;
  • 迁移文件位置在应用目录下的migrations目录;
  • Django只为更改的部分生产迁移文件;
from django.db import models
class Migration(migrations.Migration):initial = Truedependencies = []operations = [migrations.CreateModel(name='phoneNumber',fields=[('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),('name', models.CharField(max_length=10, verbose_name='名称')),('number', models.CharField(max_length=11, verbose_name='电话号码')),],),]

添加数据

Django通过Manager提供数据库访问接口。默认是为每个模型添加一个名为objects的管理器,调用objects的各种
方法对数据进行相关操作。

  • 只有进入当前的python交互式环境才能正确的使用模型;
  • 系统的python的交互式环境,因为无法加载manager.py文件的配置信息,所以会出错;
  • 执行python manager.py shell进入当前项目的交互式环境进行添加数据;

save()方法将对象数据写入数据库

>>> from apps.models import phoneNumber            # 导入模型
>>> n = phoneNumber(name='小米', number='123')     # 创建模型
>>> n.save()                                       # 保存数据

create()方法创建并保存对象

>>> from apps.models import phoneNumber            # 导入模型
>>> n = phoneNumber.objects.create(name='小米', number='123')

不管使用哪种方法进行数据保存,django都会默认给新添加的数据进行添加一个名为id的字段,作为模型的主键
也可以指定id的值。

  • id作为主键,具有唯一标识的作用;
  • 当存在相同的id时,会将旧数据进行覆盖;
>>> from apps.models import phoneNumber            # 导入模型
>>> n = phoneNumber.objects.create(id='2', name='小米', number='123')

Django——创建数据库和表相关推荐

  1. 使用django创建一个单表查询的图书管理系统

    使用django创建一个单表查询的图书管理系统 在settings.py文件中添加(用于连接mysql数据库) DATABASES = {'default': {'ENGINE': 'django.d ...

  2. oracle创建数据库、表空间、用户并授权

    oracle创建数据库.表空间.用户并授权 在安装完Oracle数据库软件之后可以使用默认的数据库orcl,也可以根据需要创建自定义的数据库.表空间用于对数据库中的资源进行分类,每个用户都有默认的表空 ...

  3. ylb:创建数据库、表,对表的增查改删语句

    ylbtech-SQL Server:SQL Server-创建数据库.表,对表的增查改删语句 SQL Server 创建数据库.表,对表的增查改删语句. 1,ylb:创建数据库.表,对表的增查改删语 ...

  4. 【转】创建数据库和表的SQL语句

    [转]创建数据库和表的SQL语句 创建数据库的SQL语句: 1 create database stuDB 2 on primary -- 默认就属于primary文件组,可省略3 (4 /*--数据 ...

  5. Android studio 关于SQlite数据库导出,创建数据库、表以及如何查看操作

    1.首先,你要确定你的模拟器或手机已经Root,若没有,在你的android SDK的platform-tools目录下打开shell命令行· 如,我的是:C:\Users\10378\AppData ...

  6. oracle实验数据库和表,1oracle创建数据库和表.doc

    1oracle创建数据库和表.doc 实验一:创建数据库和表 一.实验目的 1. 掌握使用DBCA创建数据库 2. 掌握手工创建Oracle数据库的方法 3. 掌握创建数据表的方法 二.实验内容及步骤 ...

  7. PHP教程 数据库和MySQL_PHP教程 - MySQL 创建数据库和表

    PHP MySQL 创建数据库和表 数据库存有一个或多个表. 创建数据库 CREATE DATABASE 语句用于在 MySQL 中创建数据库. 语法 CREATE DATABASE database ...

  8. Java实训项目5:GUI学生信息管理系统 - 实现步骤 - 创建数据库与表

    文章目录 七.实现步骤 (一)创建数据库与表 1.创建数据库 2.创建学校表 3.创建状态表 4.创建学生表 5.创建用户表 6.转储SQL文件 七.实现步骤 (一)创建数据库与表 1.创建数据库 在 ...

  9. php里建立数据库和表,PHP 创建数据库和表 | w3cschool菜鸟教程

    PHP 创建数据库和表 数据库存有一个或多个表. 创建数据库 CREATE DATABASE 语句用于在 MySQL 中创建数据库. 我们必须添加 CREATE DATABASE 语句到 mysqli ...

最新文章

  1. 飞行时间(TOF)相机优缺点及其应用领域
  2. 传播路径可训练的神经网络(云上人二代)
  3. iOS Appstore 版本更新
  4. python如何创建excel文件_Python xlrd/xlwt 创建excel文件及常用操作
  5. ASP.NET技巧(收集)
  6. ASP.NET生成静态页面方法大全(3)
  7. Spring Cloud Sleuth 原理简介和使用
  8. 监测UITextField的变化
  9. 写入文件python并用序号_Python和excel表合成示例:向表中添加序列号,向表的现有内容添加索引,与,Excel,表格,综合,实例,给,增加,序号,对,已有...
  10. 所需依赖_包揽全球75%进口!中国为何进口天量铁矿石?如何减少对澳依赖
  11. android activity详解三:保存activity的状态
  12. 内核调试神器SystemTap — 更多功能与原理(三)
  13. Vue学习笔记(组件篇)
  14. latex tabular自动换行
  15. Kinect v2(Microsoft Kinect for Windows v2 )配置移动电源解决方案
  16. 制作谷歌浏览器 Google Chrome 免安装绿色版!
  17. Thematic Contests CodeForces - 1077E
  18. 使用Microsoft Office Publisher制作海报Poster
  19. matlab编程测试教程,Matlab实验1 MATLAB的基本操作、编程基础
  20. 【Angular】@Input和@Output

热门文章

  1. cut out数据增强_数据增强:Mixup,Cutout,CutMix | Mosaic
  2. BUAA-2021春-数据结构-综合作业-文本摘要生成(Hash实现 + SIMD优化 终测最速)
  3. 【AC.HASH】OpenHarmony啃论文俱乐部——在基于位置的隐私感知服务中实现K-匿名之浅析
  4. 副屏幕全屏_win7双屏电脑主屏副屏设置|Win7系统如何设置双屏显示?
  5. 石油化工行业智能供应链管理系统解决方案:数智化供应链平台推动企业转型智能化发展
  6. 「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统、多目标、模型服务等
  7. 在AWS Lambda上部署标准FFmpeg工具——自定义层的方案
  8. 【hive】hive如何将Jan 1, 2021 12:40:46 PM时间格式转换为指定格式
  9. 微信小程序基于mpvue的ui组件之选择器
  10. Android各版本对应Android API(知识累积)