简短的例子

from django.db import models

class Person(models.Model):
first_name = models.CharField(max_length=)
last_name = models.CharField(max_length=)

上面的Person 模型会在数据库中创建这样一张表:

CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar() NOT NULL,
"last_name" varchar() NOT NULL
);
  • 这个表的名称myapp_person,是根据 模型中的元数据自动生成的,也可以覆写为别的名称,详见Table names
  • id 字段是自动添加的,但这个行为可以被重写。详见自增主键字段
  • 这个例子中的CREATE TABLE SQL 语句使用PostgreSQL 语法格式,要注意的是Django 会根据设置文件 中指定的数据库类型来使用相应的SQL 语句。

定义好django模型后,需要在settings.py中INSTALLED_APP添加应用

models语法:

属性=models.字段类型(字段选项)

字段类型:

  1.BooleanField()  True 0,False 1

  2.CharField()   max_length 字符串长度

  3.DateField()  date类型

  4.DateTimeField()  datetime类型

  5.DecimalField()  decimal类型  eg:money=models.DecimalField(max_digits=7,decimal_places=2)整体7位,小数点后2位,整数5位

  6.FloatField()  float类型

  7.InterField()  int类型

  8.EmailField()  varvhar类型

  9.URLField()  varchar类型

  10.TextField()  text类型

  11.ImageField()  保存图片入数据库  image=models.ImageField(upload_to="static/images/")  

  12.AutoField(primary_key=True)  自增

字段选项:

  1.primary_key  为True时主键,如没有指定,django自动添加

  2.unique  为True时唯一

  3.default  指定默认值

  4.null  为True时允许为空,默认为False

  5.db_index  为True时该列增加索引

  6.db_column  属性映射到表的列名

  7.blank  为True,允许不填,默认为False

  8.choices  字段选择项(enum)  choices=二元元祖

元选项:

  class Meta:

    元选项=""

  abstract=True  该模型为抽象基类

  app_label=""  如果该模型定义在models以外,告诉django,该模型属于哪个应用

  db_table=""  该模型对应数据表的名称(默认的数据表名是   应用名_模型名)

  ording=['-order_date']  为一个字符串的列表或者元组,每个字符串是一个字段名,前面带有‘-’表示倒序排列,没有‘-’表示正序排列,使用‘?’表示随机排序

    ording=['-pud_date','author']  >>     表示按pub_date倒序排序,按author正序排序

  verbose_name=""  对象的别名,也就是在admin后台中显示的名称,如果没有设置,django会把类名拆开作为自述名,如CamelCase变为camel case

  verbose_name_plural  verbose_name的复数

django ORM创建的更多相关文章

  1. Django ORM创建数据库

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  2. Django - ORM创建基本类

    DBFirst CodeFirst 创建类 1.根据类自动创建数据库表 在app下的models.py中创建表 创建数据库之前,需要在django下的setting.py模块中的INSTALLED_A ...

  3. Python Django ORM创建基本类以及生成数据结构

    #在项目目录下的modules.py中创建一个类,来自动生成一张表UserInfo class UserInfo(models.Model): username = models.CharField( ...

  4. django ORM创建数据库方法

    1.指定连接pymysql(python3.x) 先配置_init_.py import pymysql pymysql.install_as_MySQLdb() 2.配置连接mysql文件信息 se ...

  5. 在Django中使用ORM创建图书管理系统

    一.ORM(对象关系映射) 很多语言的web框架中都有这个概念 1. 为什么要有ORM? 1. 写程序离不开数据,要使用数据就需要连接数据库,但是不同的数据库在sql语句上(mysql,oracle等 ...

  6. Django中ORM创建表关系

    一:django中ORM创建表关系 ORM创建外键关系 1.表与表之间的关系 1.表与表之间的关系 一对多 一对一 多对多 2.操作目标条件: 图书表 出版社表 作者表 作者详情表 3.外键关联 一对 ...

  7. django orm总结[转载]

    django orm总结[转载] 转载地址: http://www.cnblogs.com/linjiqin/archive/2014/07/01/3817954.html 目录1.1.1 生成查询1 ...

  8. Django ORM 查询管理器

    Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言 ...

  9. Django ORM模型的一点体会

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. 使用Python的Django模型的话,一般都会用它自带的ORM(Object-relational ma ...

随机推荐

  1. 解决vue刷新页面以后丢失store的数据

    刷新页面时vue实例重新加载,store就会被重置,可以把定义刷新前把store存入本地localStorage.sessionStorage.cookie中,localStorage是永久储存,重新 ...

  2. go-gin-api 规划目录和参数验证(二)

    概述 首先同步下项目概况: 上篇文章分享了,使用 go modules 初始化项目,这篇文章咱们分享: 规划目录结构 模型绑定和验证 自定义验证器 制定 API 返回结构 废话不多说,咱们开始吧. 规 ...

  3. Web支持HTTPS的client(HTTP&XML-RPC)

    生成Web自签名的证书(在命令行执行以下命令) keytool -genkey -keysize 2048 -validity 3650 -keyalg RSA -dname "CN=Han ...

  4. nginx 的一些优化(突破十万并发)

    一般来说 nginx 配置文件中对优化比较有作用的为以下几项: worker_processes 8; nginx 进程数,建议按照 cpu 数目来指定,一般为它的倍数. worker_cpu_aff ...

  5. Oracle数据库触发器

    第一次写触发器,浪费了一个小时,少了一个;编译不通过 当A表有更新或插入数据时,则触发器执行向B表插入对应条件的数据1 CREATE OR REPLACE TRIGGER Test -- 触发器名称 ...

  6. Delphi - 10进制16进制相互转换

    10进制转16进制 使用IntToHex可以实现十进制到十六进制的转换,注意这里的参数有两个,第一个表示需要被转换的10进制数,第二个表示转换后用几位来显示16进制数. 代码如下: function ...

  7. 百度云BCC主机宝镜像

    重装系统 在bcc服务器中,选实例,然后重装系统,镜像选择为主机宝CentOS6.5. 装完后,查看主机宝CentOS6.5官方文档. 登录主机宝管理界面 使用 root 用户登录 SSH 终端执行: ...

  8. Spring MVC处理参数Convert

    Springmvc.xml 配置convert,xml中配置多个相同的泛型时,xml里配置的convert会从上到下挨个执行. <!-- 配置注解驱动,并配置convert --> < ...

  9. iOS批量添加SDK自动打包GUI工具

    背景 1.之前在给游戏开发商做SDK接入技术支持的时候,很多cp对iOS开发技术并不是很了解,对接SDK和打包都很迷糊,虽然我们根据他们的开发环境输出了不同的插件解决方案,这一步已经把接入SDK的复杂 ...

  10. 类型转换 String——》Char OR Char ——》String

    String转换为char 在Java中将String转换为char是非常简单的.1. 使用String.charAt(index)(返回值为char)可以得到String中某一指定位置的char.2 ...