起初:
实验django的时候,有非常多的包,类,方法,可是根本不知到如何使用,又或者是在哪里?总之就是想了解他们是如何使用?
例子:
# from django.db import models //从django.db包中导入models这个模块
# # Create your models here.
# class Contact(models.Model): //自定义类Contact,并且继承models.Model这个django类
# name = models.CharField(max_length=200) // 用models里面的CharField类实例化对象,问题就在于我想多了解这个CharField方法?????
# age = models.IntegerField(default=0)
# email = models.EmailField()
# def unicode(self):
# return self.name
# class Tag(models.Model):
# contact = models.ForeignKey(Contact)
# name = models.CharField(max_length=50)
# def unicode(self):
# return self.name
// 用models里面的CharField类实例化对象,问题就在于我想多了解这个CharField方法?????
过程:
启动python3.4的cli工具,尝试:(我的感觉就是包就是模块,大包就是大模块,大包包含小包,就是大模块里面包含有小模块,在接着就是类,函数)
help(模块.类.方法) //方法的帮助
help(模块.类) //类的帮助
help(模块) //模块帮助
dir(模块.类.方法) // 模块下的方法
dir(模块.类)
dir(模块)
# from django.db import models //成功,需要查找CharField此类的帮助
# help(models.CharField) //此处已经可以查找到CharField类的使用帮助
# 第一句话就显示:可以看出来此方法是在fields模块中
# Help on class CharField in module django.db.models.fields:
# 我又想着看看此处的源代码。
# https://github.com/django/django // github源代码位置
# 在源代码中没有找到CharField方法。
继续:
# help(models.fields) //试试看,报错
# 报错信息:
# django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
# 在交互式中,需要告诉系统,django使用哪个settings文件,django会去搜索此DJANGO_SETTINGS_MODULE环境变量。
# 设置方法:
# 在django项目mysite目录下,
# import os
# os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
# help(models.fields)就不会报错
# django.db.models.lookups.RegisterLookupMixin(builtins.object)
Field
AutoField
BinaryField
BooleanField
CharField
CommaSeparatedIntegerField
EmailField
SlugField
URLField
内置object,查看github源代码
# https://github.com/django/django/blob/master/django/db/models/lookups.py
# from django.db.models.query_utils import RegisterLookupMixin //是query_utils模块
# 继续查找
# https://github.com/django/django/blob/master/django/db/models/query_utils.py //找到了,
回过头来看看,我这到底是在干嘛?
迷迷糊糊了。
顺便看下:
CharField 字符数据类型, //数据库列的类型有字符,数字型等数据类型
models.AutoField //自动?
models.TextField //文本
models.TimeField //时间
models.BigIntegerField //big Int类型
models.URLField //url类型
models.BinaryFiel //二进制类型
models.BooleanField //布尔型
models.CharField //字符型
models.DateField //日期型
models.DateTimeField //日期时间型
models.DecimalField //小数点类型
models.DurationField //持续型?数据大小不收限制?
models.EmailField //邮件型
models.FileField //文件型
models.FilePathField //文件路径
models.FloatField //浮点型
models.ForeignKey //外键,主键去哪儿了?
models.GenericIPAddressField
models.IPAddressField
models.ImageField
models.IntegerField
models.ManyToManyField
models.NullBooleanField
models.OneToOneField
models.PositiveIntegerField
models.PositiveSmallIntegerField
models.SlugField
models.SmallIntegerField