Django应用:作为一个ORM框架,它是怎么与数据库配合的
ccwgpt 2024-09-17 12:42 31 浏览 0 评论
在前面的讲解中,可能明察秋毫的伙伴们发现了一个文件:db.sqlite3。
不知这个文件是何时诞生的,在myschools这个项目创建的时候还没有这个文件,没错,这个文件是在我们项目启动的时候生成的,因为折合Django项目中的配置有关,也就是settings.py文件中关于数据库的配置,默认配置是使用sqlite,一个内嵌的数据库系统:
这是开发Django应用默认的数据库配置,因为SQLite包含在Python中,因此您无需安装任何其他东西来支持您的数据库,这对于练习Django应用开发来说,简单又方便,当然在实际的应用开发中,也可以支持postgresql('django.db.backends.postgresql'),mysql('django.db.backends.mysql'),oracle('django.db.backends.oracle')等其他数据库系统,我们公司在开发中用的最多的就是pg数据库和mysql。下图是一个pg数据库的配置:
其中ENGINE是选择的数据库引擎,NAME是数据库名,USER是数据库用户,PASSWORD是对应用户的密码,HOST和PORT是连接数据库的主机和端口号,OPTIONS是配置一些其他参数。
另外在settings.py文件中有INSTALLED_APPS参数的配置,这是这个项目中目前需要安装的app应用,除了我们自己编写的schools应用,其他都是Django框架自带的,这些app都会被映射到数据库中,前提是这些app中包含编写好的实体类。
django.contrib.admin - 管理站点,下面的内容管理系统的讲解会用到这个,特别实用,除了界面有些丑。
django.contrib.auth - 认证系统。
django.contrib.contenttypes - 内容类型的框架。
django.contrib.sessions - 会话框架。
django.contrib.messages - 消息传递框架。
django.contrib.staticfiles - 用于管理静态文件的框架。
schools.apps.SchoolsConfig - 这个就是我们创建的app应用,也要加到这个里面。
我们使用两个命令来把我们项目中的实体类和数据库中的表关联起来,第一个命令就是makemigrations,这个命令是生成一些Django能执行的一些数据库脚本,第二个命令是migrate,这个命令的目的是执行第一步生成的数据库脚本,如下图:
我们用数据库客户端工具Navicat,连接一下数据库,查看一下Django创建的这些表:
这些表都是Django框架内自带的一些模型映射的表,我们要想构建自己的表,需要编写自己的模型,也就是实体类,因为Django是一个ORM框架,是通过操作实体类来操作数据库的,这就有些像JavaEE开发中的Hibernate框架。下面在schools/models.py中,来编写我们的实体类吧!
建立的模型很简单,一个班级模型,一个学生模型,我们执行makemigrations命令,生成数据库执行脚本:
执行命令migrate,让这个Django能识别的数据库脚本应用到数据库中:
数据库中也就增加了两张表:schools_grade和schools_student,表的名称如果没在模型中配置的话,默认是app应用的名字加上下划线,再加上模型的名字:
可以看出,如果模型中没有声明的话,Django会为我们自动加上id这一属性,并且是自增的。外键字段是记录了关联模型的主键值,我们每次更改模型之后,都要运行makemigrations和migrate命令进行数据库迁移和映射,这样我们编写的模型才真正和数据库中的表对应起来,通过Django中的一些语法,操作模型来操作数据库的增删改查,应用起来其乐融融,动手试试吧!
相关推荐
- 2025南通中考作文解读之四:结构框架
-
文题《继续走,迈向远方》结构框架:清晰叙事,层层递进示例结构:1.开头(点题):用环境描写或比喻引出“走”与“远方”,如“人生如一条长路,每一次驻足后,都需要继续走,才能看见更美的风景”。2.中间...
- 高中数学的知识框架(高中数学知识框架图第三章)
-
高中数学的知识框架可以划分为多个核心板块,每个板块包含具体的知识点与内容,以下为详细的知识框架结构:基础知识1.集合与逻辑用语:涵盖集合的概念、表示方式、性质、运算,以及命题、四种命题关系、充分条件...
- 决定人生的六大框架(决定人生的要素)
-
45岁的自己混到今天,其实是失败的,要是早点意识到影响人生的六大框架,也不至于今天的模样啊!排第一的是环境,不是有句话叫人是环境的产物,身边的环境包括身边的人和事,这些都会对一个人产生深远的影响。其次...
- 2023年想考过一级造价师土建计量,看这30个知识点(三)
-
第二章工程构造考点一:工业建筑分类[考频分析]★★★1.按厂房层数分:(1)单层厂房;(2)多层厂房;(3)混合层数厂房。2.按工业建筑用途分:(1)生产厂房;(2)生产辅助厂房;(3)动力用厂房;(...
- 一级建造师习题集-建筑工程实务(第一章-第二节-2)
-
建筑工程管理与实务题库(章节练习)第一章建筑工程技术第二节结构设计与构造二、结构设计1.常见建筑结构体系中,适用建筑高度最小的是()。A.框架结构体系B.剪力墙结构体系C.框架-剪力墙结构体系D...
- 冷眼读书丨多塔斜拉桥,这么美又这么牛
-
”重大交通基础设施的建设是国民经济和社会发展的先导,是交通运输行业新技术集中应用与创新的综合体现。多塔斜拉桥因跨越能力强、地形适应性强、造型优美等特点,备受桥梁设计者的青睐,在未来跨越海峡工程中将得...
- 2021一级造价师土建计量知识点:民用建筑分类
-
2021造价考试备考开始了,学霸君为大家整理了一级造价师备考所用的知识点,希望对大家的备考道路上有所帮助。 民用建筑分类 一、按层数和高度分 1.住宅建筑按层数分类:1~3层为低层住宅,4~6层...
- 6个建筑结构常见类型,你都知道吗?
-
建筑结构是建筑物中支承荷载(作用)起骨架作用的体系。结构是由构件组成的。构件有拉(压)杆、梁、板、柱、拱、壳、薄膜、索、基础等。常见的建筑结构类型有6种:砖混结构、砖木结构、框架结构、钢筋混凝土结构、...
- 框架结构设计经验总结(框架结构设计应注意哪些问题)
-
1.结构设计说明主要是设计依据,抗震等级,人防等级,地基情况及承载力,防潮抗渗做法,活荷载值,材料等级,施工中的注意事项,选用详图,通用详图或节点,以及在施工图中未画出而通过说明来表达的信息。2.各...
- 浅谈混凝土框架结构设计(混凝土框架结构设计主要内容)
-
浅谈混凝土框架结构设计 摘要:结构设计是个系统的全面的工作,需要扎实的理论知识功底,灵活创新的思维和严肃认真负责的工作态度。钢筋混凝土框架结构虽然相对简单,但设计中仍有很多需要注意的问题。本文针...
- 2022一级建造师《建筑实务》1A412020 结构设计 精细考点整理
-
历年真题分布统计1A412021常用建筑结构体系和应用一、混合结构体系【2012-3】指楼盖和屋盖采用钢筋混凝土或钢木结构,而墙和柱采用砌体结构建造的房屋,大多用在住宅、办公楼、教学楼建筑中。优点:...
- 破土动工!这个故宫“分院”科技含量有点儿高
-
故宫“分院”设计图。受访者供图近日,位于北京海淀区西北旺镇的故宫北院区项目已开始破土动工,该项目也被称作故宫“分院”,筹备近十年之久。据悉,故宫本院每年展览文物的数量不到1万件,但是“分院”建成后,预...
- 装配式结构体系介绍(上)(装配式结构如何设计)
-
PC构件深化、构件之间连接节点做法等与相应装配式结构体系密切相关。本节列举目前常见的几种装配式结构体系:装配整体式混凝土剪力墙结构体系、装配整体式混凝土框架结构体系、装配整体式混凝土空腔结构体系(S...
- 这些不是双向抗侧结构体系(这些不是双向抗侧结构体系的特点)
-
双向抗侧土木吧规范对双向抗恻力结构有何规定?为何不应采用单向有墙的结构?双向抗侧土木吧1.规范对双向抗侧力结构体系的要求抗侧力体系是指抵抗水平地震作用及风荷载的结构体系。对于结构体系的布置,规范针对...
- 2022一级建造师《建筑实务》1A412020 结构设计 精细化考点整理
-
1A412021常用建筑结构体系和应用一、混合结构体系【2012-3】指楼盖和屋盖采用钢筋混凝土或钢木结构,而墙和柱采用砌体结构建造的房屋,大多用在住宅、办公楼、教学楼建筑中。优点:抗压强度高,造价...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)