Django学习篇:ORM

时间:2019-09-19
本文章向大家介绍Django学习篇:ORM,主要包括Django学习篇:ORM使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Django ORM中常用字段和参数

一些说明:

  • 表myapp_person的名称是自动生成的,如果你要自定义表明,需要在model的Meta类中指定db_table参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时。

  • id字段是自动添加的,如果你想要指定自定义主键,只需要其中一个字段中指定primary_key=True即可。如果Django发现你已经明确地设置了Field.primary_key,它将不会添加自动ID列。

  • Djang会根据配置文件中指定的数据库后端类型来生成响应的SQL语句。

  • Django支持MySQL5.5及更高版本。

常用字段:

1.AutoField

AutoField
# int自增列,必须填入参数primary_key=True.当model中没有自增列,则自动创建一个列名为id的列。

2.IntegerField

IntegerField
# 一个整数类型,范围在-2147483648 to 2147483647.(一般不用它来存手机号(位数也不够),直接用字符串存。)

3.CharField

CharField
# 字符类型,必须提供max_length参数,max_length表示字符长度.
这里需要知道的是Django中的CharField对应的MySQL数据库中的varchar类型,没有设置对应char类型的字段,但是Django允许我们自定义新的字段,下面我来自定义对应于数据库的char类型
from django.db import models

# django中没有对应的char类型字段,但是我们可以自己创建
class FixCharField(models.Field):
    """自定义的char类型字段类"""
    def __init__(self, max_length, *args, **kwargs):
        self.max_length = max_length
        super().__init__(max_length=max_length, *args, **kwargs)
    
    # 让db_type返回的是char字段
    def db_type(self, connection):
        
        return f'char({self.max_length})'
    
# 应用上面自定义的char类型
class Class(models.Model):
    class_name = FixCharField(max_length=50,)

4.DateField

DateField
# 日期字段,日期格式:YYYY-MM-DD,相当与Python中的datetime.date()实例.

5.DateTimeField

DateTimeField
# 日期时间字段,格式:YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例.

6.字段合集(争取记忆)

下次再更....

原文地址:https://www.cnblogs.com/17vv/p/11552685.html