码迷,mamicode.com
首页 > 数据库 > 详细

ORM之创建数据库

时间:2018-03-04 19:56:55      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:字符   数据库   core   文件上传   常用   通过   image   color   tor   

  ORM之创建数据库

 

   常用数据类型:

    • AutoField:int自增列,必须传入参数primary_key
    • BigAutoField:bigint自增列,必须传入参数primary_key
    • SmallIntegerField:小整数列
    • IntegerField:整数列
    • PositiveIntegerField:正整数列
    • BigIntegerField:大整数列
    • BooleanField:布尔值列
    • NullBooleanField:可以为空的布尔值列
    • CharField:字符类型,必须传入max_length
    • TextField:文本类型
    • IntegerField:整数列
    • FloatField:浮点型
    • DecimalField:十进制小数.参数: 
      • max_digits:小数总长度
      • decimal_places:小数位长度
    • ImageField:字符串,路径保存在数据库,文件上传到指定目录,参数: 
      • upload_to = “” 上传到指定路径
      • storage = None 存储组件,默认django.core.files.storage.FileSystemStorage
      • width_field = None 上传图片的宽度保存的数据库字段名
      • height_field = None 上传图片的高度保存的数据库字段名
    • DateTimeField:日期+时间。格式:YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]
    • DateField:日期。格式:YYYY-MM-DD
    • TimeField:时间。格式:HH:MM[:ss[.uuuuuu]]

 

  常用关键字:

    • null:是否允许为空(例:null = True)
    • default:是否允许为空(例:default = “123”)
    • primary_key:设置为主键(例:primary_key = True)
    • db_column:列名(例:db_column = “address”,默认是跟变量名一样的,使用此关键字后可以修改成你想要的名称)
    • db_index:索引
    • unique:唯一索引
    • unique_for_date:date为唯一索引
    • unique_for_month:month为唯一索引
    • unqieu_for_day:day为唯一索引
    • auto_now:更新时自动更新(例:auto_now = True)
obj = models.DjangoInfo.objects.filter(id=1).first()
obj.password = 123
obj.save()      # 只有通过save方法保存的更新,auto_now才起作用
    • auto_now_add:第一次插入数据的时候,自动添加数据,auto_now_add与auto_now一般用于时间的操作,如记录创建的时间和更新的时间
    • choices:用不变动的数据放在内存中从而避免跨表操作
user_type_choices = (
    (1,""),
    (2,""),
    (3,"人妖")
)
user_type_id = models.IntegerField(choices=user_type_choices,default=1)

# 存入的数据是前面的数字,1,2,3
    • blank:是否为空,django admin中使用

 

    创建表名为UserInfo的表,表的主键可自行写,Django的ORM也可自行创建。

from django.db import models

class UserInfo(models.Model):
    #主键会自行创建,也可自己创建,nid为字段
    nid = models.BigAutoField(primary_key=True)
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    #增加列,在增加是,可以定义为空,也可定义为默认值
    age = models.IntegerField(null=True)
    # age = models.IntegerField(default=1)
    
    #外键关联UserGroup表,代表UserGroup的一行数据
    usergroup = models.ForeignKey("UserGroup",null=True)
    
class UserGroup(models.Model):
    #隐藏id,Django的ORM会加的
    title = models.CharField(max_length=32)

  外键将UserGroup表和UserInfo表关联起来。

ORM之创建数据库

标签:字符   数据库   core   文件上传   常用   通过   image   color   tor   

原文地址:https://www.cnblogs.com/george92/p/8505493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!