7、Django_,model

 

设计系统表

一、建立数据库表模型--model

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后台显示相对应的字段

  • 建立类,而且继承相对应的方法
  • 将须要展现的在list_display中填写进去(list_display不能够改)
  • 将相对应的方法映射到相对应的页面
  • 字段的展现顺序取决于list_display后面字段的排序

5.四、添加过滤器

六、操做数据库表(嘉宾表)

6.一、问题描述:选择的类都是类,不是具体的发布会名称(对象对应的发布会都不明确,都是Event object)

6.二、利用类下面的属性(字段)来描述类

相关文章
相关标签/搜索