web开发第八课model

一、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"
反向关联


一对多的关系




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值