python 中model.py详解

python 中model.py详解,第1张

概述model详解 Django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表。 创建表 基本结构 from django.db import models # Creat model详解

Django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表。

创建表基本结构
from django.db import models # Create your models here. class userinfo(models.Model):    nID = models.autoFIEld(primary_key=True)    username = models.CharFIEld(max_length=32)    email = models.EmailFIEld()    ip = models.GenericIPAddressFIEld()    memo = models.TextFIEld()    img = models.ImageFIEld()    usertype=models.ForeignKey("usertype",null=True,blank=True)class usertype(models.Model):    name = models.CharFIEld(max_length=32)    def __str__(self):        return self.name

  更多字段:

1、models.autoFIEld  自增列 = int(11)  如果没有的话,默认会生成一个名称为 ID 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。2、models.CharFIEld  字符串字段  必须 max_length 参数3、models.BooleanFIEld  布尔类型=tinyint(1)  不能为空,Blank=True4、models.ComaSeparatedIntegerFIEld  用逗号分割的数字=varchar  继承CharFIEld,所以必须 max_lenght 参数5、models.DateFIEld  日期类型 date  对于参数,auto_Now = True 则每次更新都会更新这个时间;auto_Now_add 则只是第一次创建添加,之后的更新不再改变。6、models.DateTimeFIEld  日期类型 datetime  同DateFIEld的参数7、models.Decimal  十进制小数类型 = decimal  必须指定整数位max_digits和小数位decimal_places8、models.EmailFIEld  字符串类型(正则表达式邮箱) =varchar  对字符串进行正则表达式9、models.floatFIEld  浮点类型 = double10、models.IntegerFIEld  整形11、models.BigIntegerFIEld  长整形  integer_fIEld_ranges = {    'SmallintegerFIEld': (-32768,32767),    'IntegerFIEld': (-2147483648,2147483647),    'BigIntegerFIEld': (-9223372036854775808,9223372036854775807),    'PositiveSmallintegerFIEld': (0,    'PositiveIntegerFIEld': (0,  }12、models.IPAddressFIEld  字符串类型(ip4正则表达式)13、models.GenericIPAddressFIEld  字符串类型(ip4和ip6是可选的)  参数protocol可以是:both、ipv4、ipv6  验证时,会根据设置报错14、models.NullBooleanFIEld  允许为空的布尔类型15、models.PositiveIntegerFIEl  正Integer16、models.PositiveSmallintegerFIEld  正smallinteger17、models.SlugFIEld  减号、下划线、字母、数字18、models.SmallintegerFIEld  数字  数据库中的字段有:tinyint、smallint、int、bigint19、models.TextFIEld  字符串=longtext20、models.TimeFIEld  时间 HH:MM[:ss[.uuuuuu]]21、models.URLFIEld  字符串,地址正则表达式22、models.BinaryFIEld  二进制23、models.ImageFIEld   图片24、models.filePathFIEld 文件

  更多参数

1、null=True  数据库中字段是否可以为空2、blank=True  django的 admin 中添加数据时是否可允许空值3、primary_key = False  主键,对autoFIEld设置主键后,就会代替原来的自增 ID 列4、auto_Now 和 auto_Now_add  auto_Now   自动创建---无论添加或修改,都是当前 *** 作的时间  auto_Now_add  自动创建---永远是创建时的时间5、choicesGENDER_CHOICE = (        (u'M',u'Male'),(u'F',u'Female'),)gender = models.CharFIEld(max_length=2,choices = GENDER_CHOICE)6、max_length7、default  默认值8、verbose_name  admin中字段的显示名称9、name|db_column  数据库中的字段名称10、unique=True  不允许重复11、db_index = True  数据库索引12、editable=True  在admin里是否可编辑13、error_messages=None  错误提示14、auto_created=False  自动创建15、help_text  在admin中提示帮助信息16、valIDators=[]17、upload-to   上传到哪个位置,更多与image,filepath配合使用

  

连表结构一对多:models.ForeignKey(其他表)多对多:models.ManyToManyFIEld(其他表)一对一:models.ManyToManyFIEld(其他表)

应用场景:

应用场景: 一对多:当一张表中创建一行数据时,有一个单选的下拉框(可以被重复选择)    例如:创建用户信息时候,需要选择一个用户类型【普通用户】【金牌用户】【铂金用户】等。多对多:在某表中创建一行数据是,有一个可以多选的下拉框    例如:创建用户信息,需要为用户指定多个爱好一对一:在某表中创建一行数据时,有一个单选的下拉框(下拉框中的内容被用过一次就消失了    例如:原有含10列数据的一张表保存相关信息,经过一段时间之后,10列无法满足需求,需要为原来的表再添加5列数据

  

更多详解请参考https://blog.csdn.net/Com_ma/article/details/77847404?fps=1&locationNum=3 和 https://www.cnblogs.com/BlueSkyyj/p/11234852.html

总结

以上是内存溢出为你收集整理的python 中model.py详解全部内容,希望文章能够帮你解决python 中model.py详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1189157.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存