zoukankan      html  css  js  c++  java
  • ORM之创建数据库

    ORM之创建数据库

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

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

      常用数据类型:

      • AutoField:自增字段,生成int类型。可以传入参数主键primary_key=True
      • BigAutoField:自增字段,生成bigint类型,可以传入参数primary_key
      • CharField:字符类型,必须传入长度max_length
      • SmallIntegerField:小整数列
      • IntegerField:整数字段类型
      • PositiveIntegerField:正整数列
      • BigIntegerField:大整数列
      • BooleanField:布尔值列
      • NullBooleanField:可以为空的布尔值列
      • 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中使用

    ---------------- END -------------

      

  • 相关阅读:
    VUE 网页端改成桌面端(Electron)
    GitHub 的使用(用Git完成代码提交)
    Entity Framework Code Firest 连接Sqlserver数据库(增删改查)
    C# 微信小程序支付(ASP.NET Core WebApi )
    Entity Framework Code Firest 连接Postgresql数据库
    ASP.NET Core 实现 MQTT通讯协议 Demo(开源库:MQTTnet)
    ASP.NET Core WebApi + EF Core(实现增删改查,使用Swagger测试API)
    Redis不同数据类型的的数据结构实现
    C#通过Redis实现分布式锁
    网络爬虫基本原理(一)
  • 原文地址:https://www.cnblogs.com/george92/p/8505493.html
Copyright © 2011-2022 走看看