django实现地址省市区三级联动和drf-extensions扩展实现缓存

本文介绍了如何在Django中实现省市区三级联动,包括创建areas应用,定义models,数据库迁移,编写views和序列化器,以及配置URLs。此外,还详细讲解了使用drf-extensions扩展进行API缓存的配置,包括添加装饰器、设定缓存时间和数据库,以及使用扩展类实现缓存功能。
摘要由CSDN通过智能技术生成

前文

在用户录入地址时,需要进行省市区的选择。在页面加载时,向后端请求省份数据,当用户选择确定省份后,向后端请求该省份的城市数据;在用户选择确定城市数据后,向后端请求该城市的区县信息。我们把这个过程称为省市区三级联动。

创建一个应用areas

cd到apps文件夹下创建

python ../../manage.py startapp areas

安装完之后注意配置设置文件:

INSTALLED_APPS = [
       ‘areas.apps.AreasConfig‘,#省市区数据
]

还有系统urls的配置和admin后台管理也要写一下

models模型类创建省市区数据表,自关联方式

from django.db import models

# Create your models here.

class Areas(models.Model):
    name = models.CharField(max_length=50, verbose_name='地名')
    # 外键链接自己,ondelete是当删除时和主表的行为
    pid = models.ForeignKey('self', verbose_name='父级的行政区域id', on_delete=models.SET_NULL, related_name='addinfo', null=True, blank=True)
    # on_delete = models.CASCADE  # 删除关联数据的时候,与之的关联也删除
    # on_delete = models.DO_NOTHING  # 不作操作
    # on_delete = models.PROTECT  # 删除关联就保存,保护
    # on_delete = models.SET_DEFAULT  # 与之关联设为默认值
    # on_delete = models.SET_NULL  # 与之关联设为空

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'areas'
        verbose_name_plural = '地区'

模型类代码说明:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值