web开发第八课model

来源:互联网 发布:java url连接 编辑:程序博客网 时间:2024/06/04 18:49

一、ISO 8601和UTC

1、ISO组织定义的日期和时间的表示方法

2、提供一个标准的字符串表示日期和时间的方法

3、不同的国家和地区,都会使用这种方式不会有歧义

不同的时间写法:2014/03/02 和 03/02/2014

不同的时区 2014/03/02 09:00:00 中国,美国

扩展格式:2017-04-21T08:00:00Z   T表示time,Z表示UTC时间,时区不需调整

二、UTC(Coordinate universal Time)

中国的北京时间 2017年4月21日,上午 8点整

ISO 8601 可以表示为2017-04-21T00:00:00Z

也可以表示为 2017-04-21T08:00:00+08:00

三、后端实现

1、外键的概念

如果一个表中

# 数据库表中,Lesson 对应的Course 只有其id# 我们需要获取名字(根据接口文档)qs = Lesson.objects.all().select_related('course') \    .annotate(course_name=F('course__name'))qs = qs.values('id','course_id','course_name','starttime','endtime',               'desc').order_by('-id')

course是外键,加两个_就可以查到这个字段course__name

model间的关联关系

一对多

人(出生城市 属性) 和城市

一对一

人(身份证号属性) 和身份证

多对多

人(游玩过的城市 属性) 和城市

敲命令行方式,涉及到django环境,用django增强型的shell

python manage.py shell


多对多是单独的产生一张表


退出用quit()

class City(models.Model):    name = models.CharField(max_length=50)    toursites = models.CharField(max_length=80)    class Meta:        db_table ="zzz_city"class IdCard(models.Model):    peoplename = models.CharField(max_length=50)    idnumber = models.CharField(max_length=80)    class Meta:        db_table = "zzz_iccard"class People(models.Model):    name = models.CharField(max_length=80)    borncity = models.ForeignKey(City,related_name='born_people')    idcard = models.OneToOneField(IdCard,related_name='to_people')    #ManyToManyField 会产生一张新表    visitedcity = models.ManyToManyField(City,db_table='zzz_peoplevisitcity',related_name='visited_people')    class Meta:        db_table = "zzz_people"
反向关联


一对多的关系




原创粉丝点击