广州番禺Python, Java小班周末班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6
5.1.1 django模型与数据库
在MTV架构中,模型层负责与数据库相关的操作,例如数据的定义,数据的存储,数据的读写,数据的校验等。在django中进行模板渲染,主要是指通过模型来获取数据,然后根据不同的数据来生成不同的网页内容。django中的模型层依托于底层的数据库来对数据进行存储,读写等操作,读者在学习django模型前,有必要先学习与数据库相关的基础知识。
5.1.2 数据库基本概念
什么是数据库?
数据库,简单地理解,就是存储数据的仓库,按存储介质的不同,计算机中的数据库又可分为硬盘数据库和内存数据库。硬盘数据库,即数据存储在硬盘上。而内存数据库,是将数据存储在内存中。在硬盘中进行存储的优点是,容量大,可以持久化存储,但是读写速度相对较慢,在内存中进行数据存储,读写速度快,但容量小,且不能进行持久化存储,一旦关闭电源,内存中的数据就会消失。
内存数据库在具体的实现中,可以定期将内存中的数据转储到文件中,以实现持久化存储。
下图所示为数据库的定义及分类:
DBMS
DBMS是数据库管理系统的英文简写,是一种专门用来对数据进行管理和控制的系统软件,通过DBMS可以创建,使用,维护数据库。DBMS是在文件系统的基础上发展而来,同简单的文件存储一样,都是对数据进行组织的管理技术。用户直接使用文件进行数据共享时,利用的是操作系统提供的接口来进行文件的读写。使用DBMS时,利用的是DBMS对外提供的用户接口来对数据进行处理。
DBMS在内部实现中,也是以文件来进行存储的,同简单文件存储的区别在于,DBMS在内部采用了复杂的数据模型来表示数据结构,真正的实现了以数据为中心的数据共享。DBMS是程序员编写的一个复杂软件,它对数据进行集中的管理和控制,来保证数据的安全性和完整性。
对DBMS进行分类,按数据组织和实现方式的不同,可以分为关系型的DBMS和非关系型的DBMS。在计算机中,用NoSQL来泛指非关系型的数据库管理系统。
结构化查询语言:SQL
结构化查询语言对应的英文为:Structured Query Language,简称为SQL,是一种数据库查询语言。在RDBMS中,用来对数据进行查询、更新,以及对数据库系统进行管理。
SQL首先是在IBM的关系数据库SystemR上实现的,由于其简洁易学,功能丰富,一经推出,便大受业界和用户的欢迎。1980年10月由ANSI的数据库委员会进行批准,将其作为关系型数据库语言的美国标准。
学习结构化查询语言,主要是学习SQL中的动词的用法,结构化查询语言的主要组成部分:
DDL | 数据定义语言, 其核心动词包括CREATE,DROP,ALTER,分别表示表格的创建,表格的删除,表格的修改。 |
DQL | 数据查询语言,核心的动词为SELECT,表示从表格中查询数据。 |
DML | 数据操作语言,核心的动词为INSERT,UPDATE,DELETE,分别表示在表格中插入数据,在表格中更新数据,在表格中删除数据。 |
TCL | 事务控制语言,使用事务控制语言用来对DML语句进行事务控制,核心动词为COMMIT,ROLLBACK,分别表示对事务进行提交,对事务进行回滚。 |
5.1.3 django中的默认数据库
django默认采用的是sqlite数据库,无需额外配置。sqlite是一款开源的,高性能的关系型数据库,支持事务操作,其占用的资源非常低,常用来作为嵌入式产品的标配数据库。sqlite的另外一个显著特性是,无需安装和管理配置,整个数据库存储在一个单一的文件中。读者打开D盘django-project目录,会发现目录中存在一个db.sqlite3文件,该文件即为sqlite数据库。文件名中的sqlite3表示SQLite的最新版本:SQLite 3。
5.1.4 配置其它的数据库
企业中常用的其它开源数据库有MySQL, MongoDB,前者也是一款使用广泛的关系型数据库,后者是一款高性能的NoSQL数据库。采用何种数据库,需根据实际的项目需求以及数据库本身的特性来进行分析。
SQLite数据库的特点是轻量,速度快,如果只是在单机环境中进行使用,且数据规模不是很大的情况下,使用SQLite就已经完全足够。MySQL或MongdoDB就比较适合数据规模大,需要对数据进行复杂处理,以及数据库与服务器进行分开部署的应用场景。
在本节的内容中,薯条老师教大家在django中配置MySQL数据库的方法。现在请读者按照以下步骤进行操作:
(1) 打开settings.py
在D:\django-project\chipscoco目录中可以找到settings.py文件,到现在为止,读者对settings.py文件的作用应该比较熟悉了。 在前面章节的内容中,我们在settings.py中注册Django应用blog, 以及配置项目的模板目录以及静态目录。
打开settings.py,找到与数据库配置相关的全局变量DATABASES,该全局变量定义了与数据库配置的相关信息。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
DATABASES变量是一个字典类型,对键名default的值进行修改,可以配置其它的数据库。在默认配置中,我们可以看到django配置的为sqlite数据库。django项目根目录下的db.sqlite3文件即为sqlite数据库。
(2) 修改DATABASES变量
对default的键值进行修改,修改后的代码为:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'database_name', 'USER': 'user_of_mysql', 'PASSWORD': 'password_of_mysql', 'HOST': 'localhost', 'PORT': 3306 } }
在以上代码中,NAME用来定义mysql的数据库名,USER用来定义mysql的用户名,PASSWORD用来定义mysql的登录密码,HOST用来定义mysql服务器的地址,PORT用来定义mysql服务器的端口。同学们要注意的是,在配置使用mysql前,需要先安装mysql服务器。
5.1.5 在模型中使用数据库
django使用ORM将模型中的对象与底层数据库的操作进行了映射,使得开发者可以通过对象操作的方式来使用数据库,而无需进行SQL语句的编写。在5.2节的内容中,会继续对ORM进行讲解。
5.1.6 最具实力的小班培训
薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,包拿Offer
(3) 数据分析高薪就业班,月薪11K-15K, 免费领取课程大纲
(4) Python大数据挖掘,量化投资就业班,月薪12K-25K,免费领取课程大纲
扫码免费领取Python学习资料: