django ORM创建
简短的例子
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创建的更多相关文章
- Django ORM创建数据库
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
- Django - ORM创建基本类
DBFirst CodeFirst 创建类 1.根据类自动创建数据库表 在app下的models.py中创建表 创建数据库之前,需要在django下的setting.py模块中的INSTALLED_A ...
- Python Django ORM创建基本类以及生成数据结构
#在项目目录下的modules.py中创建一个类,来自动生成一张表UserInfo class UserInfo(models.Model): username = models.CharField( ...
- django ORM创建数据库方法
1.指定连接pymysql(python3.x) 先配置_init_.py import pymysql pymysql.install_as_MySQLdb() 2.配置连接mysql文件信息 se ...
- 在Django中使用ORM创建图书管理系统
一.ORM(对象关系映射) 很多语言的web框架中都有这个概念 1. 为什么要有ORM? 1. 写程序离不开数据,要使用数据就需要连接数据库,但是不同的数据库在sql语句上(mysql,oracle等 ...
- Django中ORM创建表关系
一:django中ORM创建表关系 ORM创建外键关系 1.表与表之间的关系 1.表与表之间的关系 一对多 一对一 多对多 2.操作目标条件: 图书表 出版社表 作者表 作者详情表 3.外键关联 一对 ...
- django orm总结[转载]
django orm总结[转载] 转载地址: http://www.cnblogs.com/linjiqin/archive/2014/07/01/3817954.html 目录1.1.1 生成查询1 ...
- Django ORM 查询管理器
Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言 ...
- Django ORM模型的一点体会
作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁转载. 使用Python的Django模型的话,一般都会用它自带的ORM(Object-relational ma ...
随机推荐
- mybatis解决字段名和实体属性不相同
两种方法: 1.在xml文件里面使用别名 2.使用resultMap标签
- Go - chan 通道
概述 原来分享的基础语法的时候,还未分享过 chan 通道,这次把它补上. chan 可以理解为队列,遵循先进先出的规则. 在说 chan 之前,咱们先说一下 go 关键字. 在 go 关键字后面加一 ...
- DFRobot模块物联网演示项目整合
简介 本文是此次物联网项目的终结篇.本文将演示如何整合之前的文章中的模块和代码,来简单的完成一个物联网项目.最终的实现效果是:利用Iphone手机上的MQTTool App,来获取DHT11的温湿度数 ...
- sitecore 将媒体项目关联到为数字营销资产分类
在创建营销活动时,您可能希望跟踪联系人与媒体项目的交互方式,例如PDF,视频或您网站上的其他文档.您可以通过将媒体项目分类为数字营销资产来实现此目的. 当您应用分类标签到媒体库中的项目时,项目就变成了 ...
- JavaIO学习:打印流
打印流 打印流是输出信息最方便的类,注意包含字节打印流:PrintStream和字符打印流:PrintWriter. 打印流提供了非常方便的打印功能,可以打印任何类型的数据信息,例如:小数,整数,字符 ...
- 聊聊Lambda架构
定义 在数据分析场景中,我们可能会遇到这样的问题.例如,我们要做一个推荐系统,如果我们用批处理任务去做,一天或者一小时的推荐频次明显延迟太大.如果用流处理任务,虽然延迟的问题解决了,然而只用实时数据而 ...
- NIO ByteBuffer的allocate与allocateDirect区别(HeapByteBuffer与DirectByteBuffer的区别)
在Java中当我们要对数据进行更底层的操作时,一般是操作数据的字节(byte)形式,这时经常会用到ByteBuffer这样一个类. ByteBuffer提供了两种静态实例方式: public stat ...
- Sql 分页语句
select * from (select *,ROW_NUMBER()over(order by [ID]) as rowindex from product ) tb where rowinde ...
- C# 文件监听类 FileSystemWatcher 属性
属性: Path——这个属性告诉FileSystemWatcher它需要监控哪条路径.例如,如果我们将这个属性设为“C:Temp”,对象就监控那个目录发生的所有改变.IncludeSubDirecto ...
- Asp.net MVC企业级开发(04)---SignalR消息推送
Asp.net SignalR是微软为实现实时通信而开发的一个类库.可以适用于以下场景: 聊天室,如在线客服系统,IM系统等 股票价格实时更新 消息的推送服务 游戏中人物位置的实时推送 SignalR ...