Django models模型
Django models模型
一. 所谓Django models模型,是指的对数据库的抽象模型,models在英文中的意思是模型,模板的意思,在这里的意思是通过models,将数据库的借口抽象成python自己的一个类。然后在python Django框架其他代码文件中,可以通过在models代码文件中抽象出来的数据接口模型板模型类对数据库进行一系列的其他操作。
二. Django 对各种数据库都能提供很好的支持,如mysql,oracle,postgresql,sqlite等,diango为这些数据库提供了统一的调用API,我们可以根据自己业务需求选择不同的数据库。也就是缩django调用封装好这些数据库以后,我们对这些数据的操作都是一样的。
MySQL 是 Web 应用中最常用的数据库,现在接下来,我们都将以 Mysql 作为例进行测试学习,如果你没安装 mysql 驱动,可以执行以下命令安装:
sudo pip install mysqlclient
数据库配置:
我们在使用数据库的时候,需要在项目的 settings.py 文件中找到 DATABASES 配置项,配置一下有关数据的配置文件,使我们的django项目能远程连接到我们的数据库。
DATABASES = {
'default': {
'ENGINE':'django.db.backends.mysql', # 或者使用 mysql.connector.django
'NAME': 'test',
'USER': 'test',
'PASSWORD': 'test123',
'HOST':'localhost',
'PORT':'3306',
}
}
注:我们这里这里添加了中文注释,所以你需要在项目的settings.py 文件头部添加
# -*- coding: UTF-8 -*-。
接下来在我们的项目中,无论是python项目文件还是html项目文件,只要我们使用中文或者使用中文注释,都必须在前面加上# -*- coding: UTF-8 -*-,来支持中文显示。
上面的配置文件中包含了数据库名称和用户的信息,它们与 MySQL 中对应数据库和用户的设置相同。Django 根据这一设置,与 MySQL 中相应的数据库和用户连接起来。
三.django定义规定,只要我们使用models数据库模板,就必须创建一个app实例,经测试,如果不启用实例,models会不起作用而且还会报错。以后这个待有机会再验证一下。
因为我们我们服务器暂时没安装mysql,django默认使用小型数据库sqlite,sqlite与mysql数据库在使用方式上相同,
我们创建一个关于数据库的模型,因为每个模型都是跟数据库相对应的,所以我们可以起一个关于数据的名字:
django-admin.py startapp bookmodels
我们也可以这样命名bookdb_models,这里我们暂时使用bookmodels命名。
目录结构如图所示:

添加代码如下:
# -*- coding: utf-8 -*- //支持中文
from __future__ import unicode_literals
from django.db import models
class bookdb(models.Model):
book_id=models.AutoField(primary_key=True)
book_name = models.CharField(max_length=32)
pub_date=models.DateField()
price=models.DecimalField(max_digits=6,decimal_places=2)
publish=models.CharField(max_length=32)
注:只要使用models就必须加入这句话:
from django.db import models
意思是从django.db文件中引入models数据库模板,而django.db文件中封装了一个models模板类,用来表示和表达数据库,并通过这models类封装了数据库接口,并通过他对数据库进行操作。
注:models在django里面可以理解为就是数据库的意思。
而models中的Model,则代表数据库其中的一个表格模板。我们创建一个表,就需要调用这个Model表格模板。
Django models模型的更多相关文章
- Django models模型(1)
1)使用模型需要在INSTALLED_APPS中注册 2)模型字段(字段类型和字段选项) 1.字段类型 常用: CharField,TextField: 对应字符串对象 DateTimeField和D ...
- Django models模型ORM
一.ORM介绍 映射关系: 表名 -------------------->类名 字段-------------------->属性 表记录----------------->类实例 ...
- 转 Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- python学习-- Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- django models 类型整理 version:1.8.3
django models 类型整理 version:1.8.3 网上百度到的最上面的一篇已经是11年的了,django变化很大,现在把1.8.3版的models类型大致整理了下贴出来 普通键部分 F ...
- 64、django之模型层(model)--建表、查询、删除基础
要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带 ...
- 67、django之模型层(model)--查询补充及mookie
本篇导航: F查询与Q查询 cookie 一.F查询与Q查询 1.以Book表为例 class Book(models.Model) : title = models.CharField(max_le ...
- 初识DJango——MTV模型
一.Django—MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻 ...
- 【Django】模型层说明
[Django模型层] 之前大概介绍Django的文章居然写了两篇..这篇是重点关注了Django的模型层来进行学习. ■ 模型定义 众所周知,Django中的模型定义就是定义一个类,其基本结构是这样 ...
随机推荐
- [转]用AOP改善javascript代码
有时候,不光要低头写代码,也要学着站在更高的角度,来思考代码怎么写,下面这篇文章,讲的关于代码设计的问题,脑洞大开. 原文: http://www.alloyteam.com/2013/08/yong ...
- ES文件浏览器 WIFI 查看电脑文件怎么弄
1 开启来宾账户 2 右击要共享的文件夹,添加Guest共享(如果只是要查看共享的资源,权限级别为读取即可) 3 共享之后,网络路径就是"\\"+你的计算机名+" ...
- Deepin-我为什么推荐它!
针对Win上的开发软件,大部分都需要密匙或者破解,而Deepin不敢说一应俱全,但全沾边是没问题的 无论是编程.娱乐还是其它的,基本上都可以做到,而且它还应用了Crossover来兼容大部分的Win软 ...
- css中使input输入框与img(图片)在同一行居中对齐
input,img{vertical-align:middle;},同时设置input和img的vertical-align属性,兼容ie7
- 软件质量之道:PCLint之中的一个
故天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,增益其所不能. 孟子 1引子 今天听老韩一席话,当真是感慨万千啊.心怀斗志昂扬.奋斗十年,到头来.却看到身 ...
- eclipse maven 插件的安装和配置
maven3 安装: 安装 Maven 之前要求先确定你的 JDK 已经安装配置完毕.Maven是 Apache 下的一个项目.眼下最新版本号是 3.0.4.我用的也是这个. 首先去官网下载 Mave ...
- Yii2 mongodb 扩展的where的条件增加大于 小于号
1. mongodb的where中有比較丰富的 条件.例如以下: static $builders = [ 'NOT' => 'buildNotCondition', 'AND' => ' ...
- 升级iOS 9之前的注意事项
iOS 9 beta刚刚公布.就下载了官网的升级包, 使用itunes的更新功能,升级 眼看安装过程一番顺利, 升级完開始进入设置操作步骤上, 结果傻眼了 进入了输入手机password的界面, 不 ...
- Android 封装实现各种样式对话框
先上图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/disso ...
- URL传参中文乱码的一种解决方法
中文乱码是由于,发送和接收方使用的编码解码格式不一致导致,以下是关于url传参解决中文乱码的一种方法,最后根据各种编码格式尝试解码,发现正确的解码格式 string strQueryString = ...