2018-04-15 Django

MVC

大部分开发语言中都有MVC框架

MVC框架的核心思想是:解耦

降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现了代码的重用

M   表示model,主要用于对数据库层的封装

V    表示view,用于向用户展示结果

C    表示controller,是核心,用于处理要求、获取数据、返回结果

MVT

Django是一款python的web开发框架

与MVC有所不同,属于MVT框架

M    表示model,负责与数据库交互

V    表示view,是核心,负责接收请求、获取数据、返回结果

T     表示template   负责呈现内容到浏览器


惰性执行:

all()    

filter()   

exclude()    

order_by()

values()

写法:

filter(键1=值1,键2=值2)

等价于

filter(键1=值1).filter(键2=值2)

get()   返回单个满足条件的对象

count()   返回当前查询的总条数

first()    返回第一个对象

last()    返回最后一个对象

exsts()   判断查询集中是否有数据,如果有则返回True

定义模型:

AutoField:一个根据实际ID自动增长的IntegerField,通常不指定,如果不指定,一个主键字段将自动添加到模型中

BooleanField:true/false 字段,此字段的默认表单控制是CheckboxInput

NullBooleanField:支持null、true、false三种值 

CharField(max_length=字符长度):字符串,默认的表单样式是 TextInput

TextField:大文本字段,一般超过4000使用,默认的表单控件是Textarea

IntegerField:整数   

DecimalField(max_digits=None, decimal_places=None):使用python的Decimal实例表示的十进制浮点数

DecimalField.max_digits:位数总数

DecimalField.decimal_places:小数点后的数字位数

FloatField:用Python的float实例来表示的浮点数

DateField([auto_now=False, auto_now_add=False]):使用Python的datetime.date实例表示的日期

参数  DateField.auto_now:每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为false

参数DateField.auto_now_add:当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false

该字段默认对应的表单控件是一个TextInput. 在管理员站点添加了一个JavaScript写的日历控件,和一个“Today"的快捷按钮,包含了一个额外的invalid_date错误消息键

auto_now_add, auto_now, and default 这些设置是相互排斥的,他们之间的任何组合将会发生错误的结果

TimeField:使用Python的datetime.time实例表示的时间,参数同DateField

DateTimeField:使用Python的datetime.datetime实例表示的日期和时间,参数同DateField

FileField:一个上传文件的字段

ImageField:继承了FileField的所有属性和方法,但对上传的对象进行校验,确保它是个有效的image

模型成员

objects:是Manager类型的对象,用于数据库进行交互

你可能感兴趣的:(2018-04-15 Django)