ORM的理解及相关字段,参数
Posted lamb2018
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORM的理解及相关字段,参数相关的知识,希望对你有一定的参考价值。
ORM简介
ORM(object-relational-mapping),简单理解,就是提供了一种用面向对象语言来操作数据库的方式,解决了面向对象和关系数据库之间不匹配的问题,让编程者更容易、便捷的操作数据库,让数据库的变更变得更加简单。
ORM方法论基于的3个核心原则:
1.简单:以最基本的形式建模数据
2.传达性:让数据库结构通过人们都能理解的语言实现。
3.精确性:基于数据库模型创建正确、标准化的结构。
部分常用字段:
1.CharField,IntegerField,AutoField,EmailField,TextField(textarea),BooleanField(checkbox),DateTimeField(类似DateField)
2.FloatField
参数:max-digits 总位数(不包括小数点和符号) decimal_places 小数位数
3.DateField
参数: Argument 描述-----(可选)
auto_now 对象保存时,将当前时间设置为值,通常用于表示最后修改日期的时间戳.
auto_now_add 当对象首次被创建时,自动将该字段的值设置为当前时间.通常用于表示对象创建时间.(仅仅在admin中有意义...)
4.ImageField
参数:height_field 和 width_field if 按此尺寸规格保存图片(可选)
5.FileField
参数:upload_to 保存下载文件的本地文件系统路径.
default 初始默认文件
avatar = models.FileField(upload_to=‘avatars/‘, default="/avatars/default.png")
会将文件对象下载到项目的根目录中avatars文件夹中(如果没有avatar文件夹,Django会自动创建),user_obj的avatar存的是文件的相对路径。
6.URLField
参数:verify_exists 默认为True, 给定的 URL 会预先检查是否存在( 即URL是否被有效装入且没有返回404响应). admin----------<input type="text">
7.NullBooleanField
意义: 类似 BooleanField加null=True 推荐使用
admin 用一个选择框 <select> (三个可选择的值: "Unknown", "Yes" 和 "No" ) 来表示这种字段数据.
8.SlugField
意义:"Slug" 报纸术语,某个东西的小小标记(短签), 只包含字母,数字,下划线和连字符.通常用于URLs
9.XMLField
意义:一个校验值是否为合法XML的 TextField
参数:(必须) schema_path 它是一个用来校验文本的 RelaxNG schema #的文件系统路径.
10.FilePathField
可选项目为某个特定目录下的文件名.
参数: (必须)path 一个目录的绝对文件系统路径. FilePathField据此得到可选项目
match (可选) 一个正则表达式, 作为一个字符串, FilePathField 将使用它过滤文件名.此正则表达式只会应用到 base filename 而不是路径全名. Example: "foo.*.txt^", 将匹配文件 foo23.txt 却不匹配 bar.txt 或 foo23.gif.
recursive (可选) True or False. 默认值是 False. 是否包括 path 下面的全部子目录.
Example: FilePathField(path="/home/images", match="foo.*", recursive=True)...会匹配 /home/images/foo.gif 而不匹配 /home/images/foo/bar.gif
注意:在一个 model 中使用 FileField 或 ImageField 需要以下步骤:
(1)在你的 settings 文件中, 定义一个完整路径给 MEDIA_ROOT 以便让 Django在此处保存上传文件.(出于性能考虑,这些文件并不保存到数据库.) 定义MEDIA_URL 作为该目录的公共 URL. 要确保该目录对WEB服务器用户帐号是可写的.
(2) 在你的 model 中添加 FileField 或 ImageField, 并确保定义了 upload_to 选项,以告诉 Django使用 MEDIA_ROOT 的哪个子目录保存上传文件.你的数据库中要保存的只是文件的路径(相对于 MEDIA_ROOT).出于习惯你一定很想使用 Django 提供的 get_<#fieldname>_url 函数.举例来说,如果你的 ImageField 叫作 mug_shot, 你就可以在模板中以 {{ object.#get_mug_shot_url }} 这样的方式得到图像的绝对路径.
部分常用参数:
1.null
2.blank 如果为True,该字段允许不填。默认为False。要注意,这与 null 不同。null纯粹是数据库范畴的,而 blank 是数据验证范畴的。如果一个字段的blank=True,表单的验证将允许该字段是空值。如果字
段的blank=False,该字段就是必填的。
3.default 字段的默认值。可以是一个值或者可调用对象。如果可调用,每有新对象被创建它都会被调用。
4.primary_key 若为True,则为主键。
5.unique 若为True, 则唯一
6.choices 由二元组组成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。 如果设置了choices ,默认的表单将是一个选择框而不是标准的文本框,而且这个选择框的选项就是choices 中的选
项。
先列这么多,后续会慢慢补充。
以上是关于ORM的理解及相关字段,参数的主要内容,如果未能解决你的问题,请参考以下文章