1.一、相关概念python
数据库(MySQL)sql
数据库驱动(MySQLdb):用SQL语句操做数据库数据库
模型(ORM):用编程语言操做数据库表(利用类、对象、方法来定位操做数据库表)编程
编程语言:python语言编程语言
1.二、相关流程工具
经过python语言利用数据库驱动(SQL语句)调用数据库的过程当中在前面还须要一个模型(ORM)的转换过程spa
1.一、在model层里面建立两个数据库,分别为发布会表、嘉宾表设计
建立完毕表以后,须要建立字段,通常每张表里面都有一个ID来进行标识;Django会默认帮忙建立一个自增的ID3d
1.二、定义字段类型sqlite
表名 = 定义一个类
字段名 = 在类下面定义一个变量
字段类型 = 调用model下面的字段类型
长度(数据库空间长度) = 类下面变量的定义
类型 |
说明 |
AutoField |
用于存放integer 类型的数字。 |
BooleanField |
用于存放布尔类型的数据(Ture 或False) |
CharField |
用于存放字符型的数据,须要指定长度max_length。 |
CommaSeparatedIntegerField |
用于存放用逗号隔开的integer 类型的数据。 |
DateField |
日期型,必须是“YYYY-MM-DD”格式 |
DateTimeField |
日期时间型,必须是"YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] "格式。 |
DecimalField |
小数型,用于存放小数的数字。 |
EmailField |
电子邮件类型 |
FilePathField |
文件路径类类型,FilePathFields must have either 'allow_files' or 'allow_folders' set to True. |
IntegerField |
用于存放integer 类型的数字。 |
BigIntegerField |
用于存放大integer 类型的数字,最大数支持:9223372036854775807 |
GenericIPAddressField |
存放IP 地址的类型,IPv4 和IPv6 地址,字符串格式。 |
NullBooleanField |
vlaue must be either None, True or False. |
PositiveIntegerField |
Positive integer |
PositiveSmallIntegerField |
Positive small integer |
SlugField |
须要定义max_length 值。 |
SmallIntegerField |
Small integer |
TextField |
用于存放文本类型的数据。 |
TimeField |
时间类型。"HH:MM[:ss[.uuuuuu]]" 格式 |
FloatField |
浮点型。用于存放浮点型数据。 |
URLField |
用于存放URL 地址 |
BinaryField |
Raw binary data |
1.三、日期(model)
在数据库每建立一条数据,自动插入建立的时间
creat_time = models.DateTimeField(auto_now=True) #建立时间(自动获取当前时间)
2.一、外链:ForeignKey()
event = models.ForeignKey(Event) #关联发布会ID
一(发布会)对多(嘉宾表)关系,两个表之间进行;每一个嘉宾关联发布会ID
2.二、联合主键(models.py)
class Meta: #在父类Guest下面建立一个子类(Meta) unique_together = ('event','phone') #限制发布会和手机号
惟一性:手机号码
对象:发布会
在父类(Guest)下面建立一个子类(Meta)
3.一、须要在settings.py的INSTALLED_APPS添加sign,否则会以下图,提示:App 'sign' could not be found. Is it in INSTALLED_APPS?
3.二、添加完毕3.1的操做以后,终端输入:python3 manage.py makemigrations sign,提示:HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command "pip install Pillow".
cd 到相对应python3文件下面,利用pip导入上面的pillow模块
3.三、终端输入
python3 manage.py makemigrations sign
3.四、建立数据库成功
3.五、建立的0001_initial.py文件是将models.py文件里面建立的两个数据库表转换成sqlite3类型文件
3.六、终端输入以下,生成数据库,打开SQLite Manager工具就能够看到,如图2
python3 manage.py migrate
4.一、sign_event
4.二、sign_guest
event_id:为关联到发布会表中自动生成的
5.一、将两张数据库表映射到admin后台展现
5.二、可直接在后台建立发布会
5.三、经过admin后台显示相对应的字段
5.四、添加过滤器
6.一、问题描述:选择的类都是类,不是具体的发布会名称(对象对应的发布会都不明确,都是Event object)
6.二、利用类下面的属性(字段)来描述类