Django的ORM字段介绍

Django的Field详解(转载) 本文转载于:https://www.cnblogs.com/ellisonzhang/p/10679054.html 字段 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 1、models.AutoField 自增列 = int(11) 如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。 2、models.CharField 字符串字段 必须 max_length 参数 3、models.BooleanField 布尔类型=tinyint(1) 不能为空,Blank=True 4、models.ComaSeparatedIntegerField 用逗号分割的数字=varchar 继承CharField,所以必须 max_lenght 参数 5、models.DateField 日期类型 date 对于参数,auto_now = True 则每次更新都会更新这个时间;auto_now_add 则只是第一次创建添加,之后的更新不再改变。 6、models.DateTimeField 日期类型 datetime 同DateField的参数 7、models.Decimal 十进制小数类型 = decimal 必须指定整数位max_digits和小数位decimal_places 8、models.EmailField 字符串类型(正则表达式邮箱) =varchar 对字符串进行正则表达式 9、models.FloatField 浮点类型 = double 10、models.IntegerField 整形 11、models.BigIntegerField 长整形 integer_field_ranges = { 'SmallIntegerField': (-32768, 32767), 'IntegerField': (-2147483648, 2147483647), 'BigIntegerField': (-9223372036854775808, 9223372036854775807), 'PositiveSmallIntegerField': (0, 32767), 'PositiveIntegerField': (0, 2147483647), } 12、models.IPAddressField 字符串类型(ip4正则表达式) 13、models.GenericIPAddressField 字符串类型(ip4和ip6是可选的) 参数protocol可以是:both、ipv4、ipv6 验证时,会根据设置报错 14、models.NullBooleanField 允许为空的布尔类型 15、models.PositiveIntegerFiel 正Integer 16、models.PositiveSmallIntegerField 正smallInteger 17、models.SlugField 减号、下划线、字母、数字 18、models.SmallIntegerField 数字 数据库中的字段有:tinyint、smallint、int、bigint 19、models.TextField 字符串=longtext 20、models.TimeField 时间 HH:MM[:ss[.uuuuuu]] 21、models.URLField 字符串,地址正则表达式 22、models.BinaryField 二进制 23、models.ImageField 图片 24、models.FilePathField 文件 参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1、null=True 数据库中字段是否可以为空 2、blank=True django的 Admin 中添加数据时是否可允许空值 3、primary_key = False 主键,对AutoField设置主键后,就会代替原来的自增 id 列 4、auto_now 和 auto_now_add auto_now 自动创建---无论添加或修改,都是当前操作的时间 auto_now_add 自动创建---永远是创建时的时间 5、choices sex_choice=((“F”,“FEMAL”),(“M”,’Male’),) #admin专用下拉选项 gender=models.CharFiled(max_length=2,choice=sex_choice) 6、max_length 7、default 默认值 8、verbose_name Admin中字段的显示名称 9、name|db_column 数据库中的字段名称 10、unique=True 不允许重复 11、db_index = True 数据库索引 12、editable=True 在Admin里是否可编辑 13、error_messages=None 错误提示 14、auto_created=False 自动创建 15、help_text 在Admin中提示帮助信息 16、validators=[] 17、upload-to

📅最后更新: 0001-01-01 | ⏲︎时长: 4 min | 📖字数: 1664 words | Luenci

Django简介

Django简介 背景 2003诞生 它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的 MVT(框架) Models 模型 数据库 Views 视图 放和拿 Template 模板 前端 From 表单 django 会根据你后台数据库字段及表单层的设计对应的给你创建HTML关于表单的代码 Django优点 对象关系映射(Object Relational Mapping ORM):通过定义映射类来构建数据模型,将模型与关系型数据库连接起来,使用ORM框架内置的数据库接口可实现复杂的数据操作。(简单来说就是把数据库的语句换成了python可识别的语言) URL设计:开发者可以设计任意的URL(网站地址), 而且支持使用正则表达式设计。 模板系统:提供可扩展的模板语言,模板之间具有可继承性。 表单处理:可以生成各种表单模型,而且表单具有有效性检验功能。 Cache系统:完善的缓存系统,可支持多种缓存方式 用户管理系统:提供用户认证,权限设置和用户组功能,功能扩展性强。 国际化:内置国际化系统,方便开发出多语言的网站。 admin管理系统:内置admin管理系统,系统的扩展性强。 ...

📅最后更新: 0001-01-01 | ⏲︎时长: 11 min | 📖字数: 5155 words | Luenci

Django重定向指南(转载)

原文转载自:https://www.jianshu.com/p/5e322fb5b61c(简书:爱吃鱼de大猫) 当你使用 Django 框架构建 Python Web 应用程序时,在某些时候需要将用户从一个URL重定向到另一个URL。本指南将提供 HTTP 重定向所需要了解的所有知识,以及在 Django 中该如何处理。 ...

📅最后更新: 0001-01-01 | ⏲︎时长: 20 min | 📖字数: 9778 words | Luenci

docker相关知识学习

IaaS、PaaS、SaaS 的区别 基础设施(infrastructure)、平台(platform)和软件(software) 其实就是云计算的三个分层,基础设施在最下端,平台在中间,软件在顶端,分别是分别是Infrastructure-as-a-Service(IaaS),Platform-as-a-Service(PaaS),Software-as-a-Service(SaaS) ...

📅最后更新: 0001-01-01 | ⏲︎时长: 9 min | 📖字数: 4066 words | Luenci

flask框架学习

基本概念 1.静态资源 ​ 一旦准备好资源,不在需要经常变化的资源.由于该资源不需要经常变化,所以可以提前准备.比如png/jpg/css/js等文件 2.动态资源 ​ 和静态资源相反,这种资源会经常变化.比如,我们要编写一个电商网站,我们无法预测用户在浏览商品时选择什么样的条件。 根据用户选择条件不同,我们给用户提供可供选择的商品就不同.这种资源无法提前准备。 ...

📅最后更新: 0001-01-01 | ⏲︎时长: 6 min | 📖字数: 2658 words | Luenci

Git命令集合

git config 配置 Git 的相关参数。 Git 一共有3个配置文件: 仓库级的配置文件:在仓库的 .git/.gitconfig,该配置文件只对所在的仓库有效。 全局配置文件:Mac 系统在 ~/.gitconfig,Windows 系统在 C:\Users\<用户名>\.gitconfig。 系统级的配置文件:在 Git 的安装目录下(Mac 系统下安装目录在 /usr/local/git)的 etc 文件夹中的 gitconfig。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 # 查看配置信息 # --local:仓库级,--global:全局级,--system:系统级 $ git config <--local | --global | --system> -l # 查看当前生效的配置信息 $ git config -l # 编辑配置文件 # --local:仓库级,--global:全局级,--system:系统级 $ git config <--local | --global | --system> -e # 添加配置项 # --local:仓库级,--global:全局级,--system:系统级 $ git config <--local | --global | --system> --add <name> <value> # 获取配置项 $ git config <--local | --global | --system> --get <name> # 删除配置项 $ git config <--local | --global | --system> --unset <name> # 配置提交记录中的用户信息 $ git config --global user.name <用户名> $ git config --global user.email <邮箱地址> # 更改Git缓存区的大小 # 如果提交的内容较大,默认缓存较小,提交会失败 # 缓存大小单位:B,例如:524288000(500MB) $ git config --global http.postBuffer <缓存大小> # 调用 git status/git diff 命令时以高亮或彩色方式显示改动状态 $ git config --global color.ui true # 配置可以缓存密码,默认缓存时间15分钟 $ git config --global credential.helper cache # 配置密码的缓存时间 # 缓存时间单位:秒 $ git config --global credential.helper 'cache --timeout=<缓存时间>' # 配置长期存储密码 $ git config --global credential.helper store ...

📅最后更新: 0001-01-01 | ⏲︎时长: 8 min | 📖字数: 3956 words | Luenci

JavaScript基本知识

JavaScript作用 表单动态检验(密码强度检测) 网页特效 服务端开发(Node.js) 桌面程序(Electron) APP(Cordova) 控制硬件 - 物联网(Ruff) 游戏小程序(cocos2d-js) HTML/CSS/JS的关系 HTML/CSS标记语言–描述类语言 HTML决定网页结构和内容(决定看到什么),相当于人的身体 CSS决定网页呈现给用户的模样(决定好不好看),相当于给人穿衣服、化妆 JS脚本语言-编程类语言 实现业务逻辑和页面控制(决定功能),相当于人的各种动作 浏览器执行js 浏览器分成两部分:渲染引擎和JS引擎 ...

📅最后更新: 0001-01-01 | ⏲︎时长: 7 min | 📖字数: 3181 words | Luenci

Java基本知识

方法 1 2 3 4 5 // 定义方法的格式 修饰符 返回值类型 方法名称(参数类型 参数名称,....){ 方法体; return 返回值; } 修饰符:现阶段的固定方法,public static 返回值类型:也就是方法最终产生的数据结果是什么类型 方法名称:方法的名字,规则和变量一样,小驼峰 参数类型:进入方法的数据对应的变量名称 方法体:方法需要做的事情,若干行代码 return:两个作用。 停止当前方法 将后面的结果数据返回值返还给调用处 返回值:也就是方法执行后最终产生的数据结果 return后面的“返回值”,必须和方法名称前面的“返回值类型”,保持对应 注意事项 方法应该定义在类中,但是不能在方法 在定义方法。不能嵌套 方法定义的前后顺序无所谓 方法定义之后不会执行,若要执行,必须调用:单独调用,打印调用,赋值调用 如果方法有返回值,那么必须写上“return 返回值”,不能缺失 return后面的返回值类型必须和方法的返回值类型相同,对应。 对于一个void没有返回值的方法,没有返回值。 一个方法中可以含有多个return语句,但是必须保证同时只有一个会被执行到。 方法重载 多个方法的名称一样,但是参数列表不一样 优点:只需要记住唯一一个方法名称,就可以实现类似的多个功能 相关因素 参数个数不同 参数类型不同 参数的多类型顺序不同 无关因素 与参数的名称无关 与方法的返回值类型无关 数组 数组的概念:是一种容器,可以同时存放多个数据值。 数组的特点: 1.数组是一种引用数据类型 2.数组当中的多个数据,类型必须统一 3.数组的长度在程序运行期间不可改变 数组声明 数组的初始化:在内存当中创建一个数组,并且向其中赋予一些默认值。 两种常见的初始化方式: 1.动态初始化(指定长度) 2.静态初始化(指定内容) 动态初始化数组的格式: 声明格式:数据类型[]数组名称=new数据类型[数组长度]; 静态初始化数组的格式: 声明格式(标准):数据类型[] 数组名称 = new 数据类型[] {元素1,元素2,...} 省略格式:数据类型[] 数组名称 = {元素1,元素2,...} 注意事项: 1.静态初始化没有直接指定长度,但是仍然会自动推算得到长度。 2.静态初始化标准格式可以拆分成为两个步骤。 3.动态初始化也可以拆分成为两个步骤。 4.静态初始化一旦使用省略格式,就不能拆分成为两个步骤了。 如果不确定数组当中的具体内容,用动态初始化;否则,已经确定了具体的内容,用静态初始化 使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值。 规则如下: 如果是整数类型,那么默认为0 如果是浮点类型,那么默认为0.0 如果是字符类型,那么默认为'\u0000' 如果是布尔类型,那么默认为false 如果是引用类型,那么默认为null 静态初始化其实也有默认值的过程,只不过系统自动马上将默认值替换成为了大括号当中的具体数值。 数组的长度一旦创建,程序运行期间,长度不可变 ...

📅最后更新: 0001-01-01 | ⏲︎时长: 16 min | 📖字数: 8010 words | Luenci

Java语言概述

Java语言简史 Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级编程语言。所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。 Java语言发展历史 1995年Sun公司发布Java1.0版本 1997年发布Java1.1版本 1998年发布Java1.2版本 2000年发布Java1.3版本 2002年发布Java1.4版本 2004年发布Java5版本(更新频率较大) 2006年发布Java6版本 2009年Oracle甲骨文公司收购Sun公司,并于2011发布Java7版本 2014年发布Java8版本(更新频率较大,市场占有率最大) 2017年9月发布Java9版本 2018年3月发布Java10版本 Java 平台的三个版本 作用: 这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发: Java SE(Java Platform,Standard Edition) Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。 Java EE(Java Platform,Enterprise Edition) 这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。 Java ME(Java Platform,Micro Edition) 这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。 开发环境,推荐Eclipse,NetBeans,这两个IDE可以挂接对应的插件,进行开发。还有一点,那就是这三个应用,se,标准应用,以学习为主,由于界面,开发成本,速度等问题,很少用来做程序,但不是说,他不能做程序,Eclipse,NetBeans,都是javase写起来的。Me,移动设备应用,对于一些中高端应用还好了!以前用他做过手机游戏,呵呵呵!EE,企业级解决方案,开发套件全部免费,可控性好,安全性高,乃是当前B2B的规范。再者,这三个应用,都需要虚拟机的支持。 ...

📅最后更新: 0001-01-01 | ⏲︎时长: 11 min | 📖字数: 5150 words | Luenci

Java面向对象

面向对象 三大特征:封装性,继承性,多态性。 继承是多态的前提,如果没有继承,就没有多态 继承主要解决的问题是:共性抽取 继承 父类也可以叫基类,超类 子类也可以叫派生类 ...

📅最后更新: 0001-01-01 | ⏲︎时长: 7 min | 📖字数: 3466 words | Luenci

Linux学习(一)

Linux操作系统 “一切皆文件” 系统启动流程 引导图 最初始阶段 当我们打开计算机电源,计算机会自动从主板的BlOS(Basic Input/output System)读取其中所存储的程序。这一程序通常知道一些直接连接在主板上的硬件(硬盘,网络接口,键盘,串口,并口)。现在大部分的BIOS允许你从软盘、光盘或者硬盘中选择一个来启动计算机。 下一步,计算机将从你所选择的存储设备中读取起始的512 bytes(比如光盘一开是的512 bytes,如果我们从光盘启动的话)。这512bytes叫做主引导记录MBR(master boot record)。MBR会告诉电脑从该设备的某一个分区(partition)来装载引导加载程序(boot loader)。Boot loader储存有操作系统(OS)的相关信息,比如操作系统名称,操作系统内核(kernel)所在位置等。常用的boot loader有GRUB和LILO。 随后,boot loader会帮助我们加载kernel。kernel实际上是一个用来操作计算机的程序,它是计算机操作系统的内核,主要的任务是管理计算机的硬件资源,充当软件和硬件的接口。操作系统上的任何操作都要通过kernel传达给硬件。Windows和Linux各自有自己kernel。 狭义的操作系统就是指kernel,广义的操作系统包括kernel以及kernel之上的各种应用。 (Linus Torvalds与其说是Linux之父,不如说是Linux kernel之父。他依然负责Linux kernel的开发和维护。至于Ubuntu,Red Hat,它们都是基于相同的kernel之上,囊括了不同的应用和界面构成的一个更加完整的操作系统版本。)实际上,我们可以在多个分区安装boot loader,每个boot loader对应不同的操作系统,在读取MBR的时候选择我们想要启动的boot loader。这就是多操作系统的原理。 小结:BlOS -> MBR -> boot loader -> kernel kernel 如果我们加载的是Linux kernel,Linux kernel开始工作。kernel会首先预留自己运行所需的内存空间,然后通过驱动程序(driver)检测计算机硬件。这样,操作系统就可以知道自己有哪些硬件可用。随后,kernel会启动一个init进程。它是Linux系统中的1号进程(Linux系统没有0号进程)。到此,kernel就完成了在计算机启动阶段的工作,交接给init来管理。 小结:kernel -> init process init process (根据boot loader的选项,Linux此时可以进入单用户模式(single user mode))。在此模式下,初始脚本还没有开始执行,我们可以检测并修复计算机可能存在的错误)随后,init会运行一系列的初始脚本(startup scripts),这些脚本是Linux中常见的shell scripts。这些脚本执行如下功能: 设置计算机名称,时区,检测文件系统,挂载硬盘,清空临时文件,设置网络等 当这些初始脚本,操作系统已经完全准备好了,只是,还没有人可以登录!!!init会给出登录(login)对话框,或者是图形化的登录界面。 输入用户名(比如说luenci)和密码,DONE! 在此后的过程中,你将以用户(user)luenci的身份操作电脑。此外,根据你创建用户时的设定,Linux还会将你归到某个组(group)中,比如可以是stupid组,或者是luenci组。所以你将是用户luenci,同时是luenci组的组员。(注意,组luenci和用户luenci只是重名而已,就好想你可以叫Dell,同时还是Dell公司的老板一样。你完全也可以是用户luenci,同时为stupid组的组员) 启动级别 7种运行级别 运行级别(Runlevel)指的是Unix或者Linux等类Unix操作系统的运行模式,不同的运行模式下系统的功能也有所有不同。Linux 系统下通常分为7种运行级别,分别是从0到6。各级别介绍如下: 0–停机模式 在这种模式下,系统处于停机状态,系统默认运行级别不能设为0,否则将不能正常启动。这个运行级别主要用于关闭任务,在/etc/rc0.d目录下的各个连接命令都是此级别的命令,在关闭系统时,这些命令将被逐个执行。它 们会杀掉所有进程、关闭虚拟内存和交换文件、卸载文件系统和交换分区。 1– 单用户模式。 在这种运行模下,系统处于单用户工作状态,登录用户具有root权限,文件系统被加载但是网络却没有被加载,因此也无法远程登陆。这个运行级别,只允一个用户从本地计算机上登录,/etc/rc1.d目录下的所有文件与此运行级别相关连,这个运行级别一般用于系统管理与维护。 2 - -多用户模式。 用户可以通过网络进行登录,但没有NFS(Network File System),即网络文件统。/etc/rc2.d目录下所有文件与此级别相连。 3 - -完全多用户模式。 用户可以通过网络进行登录,且有NFS,用户登陆后会进入控制台命令行模式。这也是缺省的运行模式,在这种运行级别下所有网络服务程序会一起运行。/etc/rc2.d录下的文件与此级别相连 4 - -自定义模式。 这是一种系统未使用的保留模式,/etc/rc4.d目录与此级别相连。这一级别是用户自定义的运行级别,用户可以根自己的需要进行一些自定义设置。如果想要运行这一级别的话,必须在rc3.d目录下放入连接文件,就像其他rc*.d目录下的文件,并指明是启动还是终止进程。 5 - -图形化模式。 在 Linux 下运行X Window就是使用这一运行级别,用户登录后将进入图形化的GUI界面。在这一级别下除了DNS的named与级别3不同,其余的都相同。 6 – 重启模式。 系统正常关闭并重启,默认运行级别不能设为5,否则系统将不能正常启动。/etc/rc6.d目录与此级别相连。在这一运行级别下,不会关闭电源,/etc/rc6.d目录下的连接与rc0.d目录下的连接基本相同;不同之处在于,虽然它们都执行halt(关闭)命令,但是给halt传递的参数不同,所级别6会重新启动系统而0会关闭系统。 ...

📅最后更新: 0001-01-01 | ⏲︎时长: 11 min | 📖字数: 5316 words | Luenci

Linux学习(二)

Linux操作系统(二) 进程命令 ps aux 显示所有进程 ps aux | grep '' 筛选出相关进程 kill pid 杀死相关的pid进程 kill - 9 pid 强制杀死进程 jobs查看进程的工作号 fg %工作号后台程序调到前台运行 硬盘分区 fdisk -l /dev/磁盘名查看对应磁盘名的详细信息 ...

📅最后更新: 0001-01-01 | ⏲︎时长: 6 min | 📖字数: 2738 words | Luenci

Linux常用命令

Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touch 创建文件 mv 移动文件 rm 删除文件 rmdir 删除目录 pwd命令 该命令的英文解释为print working directory(打印工作目录)。输入pwd命令,Linux会输出当前目录。 cd命令 cd命令用来改变所在目录。 ...

📅最后更新: 0001-01-01 | ⏲︎时长: 5 min | 📖字数: 2120 words | Luenci

list, tuple, dictionary, set的底层细节(python)

list, tuple, dictionary, set的底层细节 列表实现细节 python中的列表的英文名是list,因此很容易和其它语言(C++, Java等)标准库中常见的链表混淆。事实上CPython的列表根本不是列表(可能换成英文理解起来容易些:python中的list不是list)。在CPython中,列表被实现为长度可变的数组。可参考《Python高级编程(第2版)》 ...

📅最后更新: 0001-01-01 | ⏲︎时长: 5 min | 📖字数: 2360 words | Luenci

MySQL数据库函数

MySQL数据库函数 MySQL函数是数据库提供的内置函数,可以帮助用户更加方便地处理表中的数据。MySQL的内置函数,不但可以在SELECT查询语句中使用,同样可以在INSERT、UPDATE、DELETE等语句中使用。 1.数学函数: MySQL中内置的数学函数见下表: ...

📅最后更新: 0001-01-01 | ⏲︎时长: 7 min | 📖字数: 3198 words | Luenci