django ORM创建

简短的例子

from django.db import models

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

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

CREATE TABLE myapp_person (
    "id" serial NOT NULL PRIMARY KEY,
    "first_name" varchar(30) NOT NULL,
    "last_name" varchar(30) 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的复数

posted @ 2019-11-25 19:59  腹肌猿  阅读(670)  评论(0编辑  收藏  举报