简短的例子

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. Qt对话框之二:模态、非模态、半模态对话框

    一.模态对话框 模态对话框:阻塞同一应用程序中其它可视窗口输入的对话框.模态对话框有自己的事件循环,用户必须完成这个对话框中的交互操作,并且关闭了它之后才能访问应用程序中的其它任何窗口. 显示模态对话 ...

  2. 【记录】【idea】【mysql】Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.解决问题

    idea连接mysql报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property ...

  3. 公众号对接百度翻译API

    有时候在公众号中需要对接一些翻译的功能或者其他.最常见的翻译API就是中英互译,程序员用的最多的也就是中译英. 1.到百度翻译官网申请账号 http://api.fanyi.baidu.com/api ...

  4. 四种软件开发模式:tdd、bdd、atdd和ddd的概念

    看一些文章会看到TDD开发模式,搜索后发现有主流四种软件开发模式,这里对它们的概念做下笔记. TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心 ...

  5. 《 .NET并发编程实战》阅读指南 - 第7章

    先发表生成URL以印在书里面.等书籍正式出版销售后会公开内容.

  6. Nginx-Tomcat 等运维常用服务的日志分割-logrotate

    目录 一 .Nginx-Tomcat 等常用服务日志分析 Nginx 日志 Tomcat日志 MongoDB 日志 Redis 日志 二 .日志切割服务 logrotate 三.日志切割示例 Ngin ...

  7. Android 常用炫酷控件(开源项目)git地址汇总

    第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.P ...

  8. python 库 PrettyTabble 使用与错误

    参考链接:http://zetcode.com/python/prettytable/ PrettyTable能在python中生成ASCII 表,可以使用他控制表的很多方面,包括文本对齐.表的边框. ...

  9. Java面试必问通信框架NIO,原理详解

    NIO 流与块 通道与缓冲区 缓冲区状态变量 文件 NIO 实例 选择器 套接字 NIO 实例 内存映射文件 NIO与IO对比 Path Files NIO 新的输入/输出 (NIO) 库是在 JDK ...

  10. JS中var声明与function声明以及构造函数声明方式的区别

    JS中常见的三种函数声明(statement)方式有这三种: // 函数表达式(function expression) var h = function () { // h } // 函数声明(fu ...