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 TABLESQL 语句使用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 ...
随机推荐
- Qt对话框之二:模态、非模态、半模态对话框
一.模态对话框 模态对话框:阻塞同一应用程序中其它可视窗口输入的对话框.模态对话框有自己的事件循环,用户必须完成这个对话框中的交互操作,并且关闭了它之后才能访问应用程序中的其它任何窗口. 显示模态对话 ...
- 【记录】【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 ...
- 公众号对接百度翻译API
有时候在公众号中需要对接一些翻译的功能或者其他.最常见的翻译API就是中英互译,程序员用的最多的也就是中译英. 1.到百度翻译官网申请账号 http://api.fanyi.baidu.com/api ...
- 四种软件开发模式:tdd、bdd、atdd和ddd的概念
看一些文章会看到TDD开发模式,搜索后发现有主流四种软件开发模式,这里对它们的概念做下笔记. TDD:测试驱动开发(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心 ...
- 《 .NET并发编程实战》阅读指南 - 第7章
先发表生成URL以印在书里面.等书籍正式出版销售后会公开内容.
- Nginx-Tomcat 等运维常用服务的日志分割-logrotate
目录 一 .Nginx-Tomcat 等常用服务日志分析 Nginx 日志 Tomcat日志 MongoDB 日志 Redis 日志 二 .日志切割服务 logrotate 三.日志切割示例 Ngin ...
- Android 常用炫酷控件(开源项目)git地址汇总
第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.P ...
- python 库 PrettyTabble 使用与错误
参考链接:http://zetcode.com/python/prettytable/ PrettyTable能在python中生成ASCII 表,可以使用他控制表的很多方面,包括文本对齐.表的边框. ...
- Java面试必问通信框架NIO,原理详解
NIO 流与块 通道与缓冲区 缓冲区状态变量 文件 NIO 实例 选择器 套接字 NIO 实例 内存映射文件 NIO与IO对比 Path Files NIO 新的输入/输出 (NIO) 库是在 JDK ...
- JS中var声明与function声明以及构造函数声明方式的区别
JS中常见的三种函数声明(statement)方式有这三种: // 函数表达式(function expression) var h = function () { // h } // 函数声明(fu ...