Django——创建数据库和表
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——创建数据库和表相关推荐
- 使用django创建一个单表查询的图书管理系统
使用django创建一个单表查询的图书管理系统 在settings.py文件中添加(用于连接mysql数据库) DATABASES = {'default': {'ENGINE': 'django.d ...
- oracle创建数据库、表空间、用户并授权
oracle创建数据库.表空间.用户并授权 在安装完Oracle数据库软件之后可以使用默认的数据库orcl,也可以根据需要创建自定义的数据库.表空间用于对数据库中的资源进行分类,每个用户都有默认的表空 ...
- ylb:创建数据库、表,对表的增查改删语句
ylbtech-SQL Server:SQL Server-创建数据库.表,对表的增查改删语句 SQL Server 创建数据库.表,对表的增查改删语句. 1,ylb:创建数据库.表,对表的增查改删语 ...
- 【转】创建数据库和表的SQL语句
[转]创建数据库和表的SQL语句 创建数据库的SQL语句: 1 create database stuDB 2 on primary -- 默认就属于primary文件组,可省略3 (4 /*--数据 ...
- Android studio 关于SQlite数据库导出,创建数据库、表以及如何查看操作
1.首先,你要确定你的模拟器或手机已经Root,若没有,在你的android SDK的platform-tools目录下打开shell命令行· 如,我的是:C:\Users\10378\AppData ...
- oracle实验数据库和表,1oracle创建数据库和表.doc
1oracle创建数据库和表.doc 实验一:创建数据库和表 一.实验目的 1. 掌握使用DBCA创建数据库 2. 掌握手工创建Oracle数据库的方法 3. 掌握创建数据表的方法 二.实验内容及步骤 ...
- PHP教程 数据库和MySQL_PHP教程 - MySQL 创建数据库和表
PHP MySQL 创建数据库和表 数据库存有一个或多个表. 创建数据库 CREATE DATABASE 语句用于在 MySQL 中创建数据库. 语法 CREATE DATABASE database ...
- Java实训项目5:GUI学生信息管理系统 - 实现步骤 - 创建数据库与表
文章目录 七.实现步骤 (一)创建数据库与表 1.创建数据库 2.创建学校表 3.创建状态表 4.创建学生表 5.创建用户表 6.转储SQL文件 七.实现步骤 (一)创建数据库与表 1.创建数据库 在 ...
- php里建立数据库和表,PHP 创建数据库和表 | w3cschool菜鸟教程
PHP 创建数据库和表 数据库存有一个或多个表. 创建数据库 CREATE DATABASE 语句用于在 MySQL 中创建数据库. 我们必须添加 CREATE DATABASE 语句到 mysqli ...
最新文章
- 飞行时间(TOF)相机优缺点及其应用领域
- 传播路径可训练的神经网络(云上人二代)
- iOS Appstore 版本更新
- python如何创建excel文件_Python xlrd/xlwt 创建excel文件及常用操作
- ASP.NET技巧(收集)
- ASP.NET生成静态页面方法大全(3)
- Spring Cloud Sleuth 原理简介和使用
- 监测UITextField的变化
- 写入文件python并用序号_Python和excel表合成示例:向表中添加序列号,向表的现有内容添加索引,与,Excel,表格,综合,实例,给,增加,序号,对,已有...
- 所需依赖_包揽全球75%进口!中国为何进口天量铁矿石?如何减少对澳依赖
- android activity详解三:保存activity的状态
- 内核调试神器SystemTap — 更多功能与原理(三)
- Vue学习笔记(组件篇)
- latex tabular自动换行
- Kinect v2(Microsoft Kinect for Windows v2 )配置移动电源解决方案
- 制作谷歌浏览器 Google Chrome 免安装绿色版!
- Thematic Contests CodeForces - 1077E
- 使用Microsoft Office Publisher制作海报Poster
- matlab编程测试教程,Matlab实验1 MATLAB的基本操作、编程基础
- 【Angular】@Input和@Output
热门文章
- cut out数据增强_数据增强:Mixup,Cutout,CutMix | Mosaic
- BUAA-2021春-数据结构-综合作业-文本摘要生成(Hash实现 + SIMD优化 终测最速)
- 【AC.HASH】OpenHarmony啃论文俱乐部——在基于位置的隐私感知服务中实现K-匿名之浅析
- 副屏幕全屏_win7双屏电脑主屏副屏设置|Win7系统如何设置双屏显示?
- 石油化工行业智能供应链管理系统解决方案:数智化供应链平台推动企业转型智能化发展
- 「DLP-KDD 2021征文」及上届论文全集,包含深度学习推荐/广告系统、多目标、模型服务等
- 在AWS Lambda上部署标准FFmpeg工具——自定义层的方案
- 【hive】hive如何将Jan 1, 2021 12:40:46 PM时间格式转换为指定格式
- 微信小程序基于mpvue的ui组件之选择器
- Android各版本对应Android API(知识累积)