如何在 Django 视图辅助函数中读取 shapefile?

时间:2021-01-10 23:33:27

标签: django

作为视图逻辑的一部分,我需要检查纬度和经度点是否在城市边界内。 为此,我将城市形状文件与 geopandas 一起使用。在纯 python 代码中,这一切都可以在本地正常工作。 但是,当我在 Django 中运行以下代码时:

LA_geo_df = gpd.read_file('./City_Boundaries/City_Boundaries.shp')

我收到错误:

DriverError at /
./City_Boundaries/City_Boundaries.shp: No such file or directory

加载此类文件的正确 Django 方式是什么?

1 个答案:

答案 0 :(得分:1)

自动生成的 Django 设置文件将有一个 BASE_DIR 设置,如下所示

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

这是 Django 应用程序根目录的绝对文件路径。您可以使用此设置来构建文件的绝对路径

CITY_BOUNDARIES_FILE_PATH = os.path.join(BASE_DIR, 'City_Boundaries', 'City_Boundaries.shp')

然后你想加载文件的地方你可以使用设置

from django.conf import settings

LA_geo_df = gpd.read_file(settings.CITY_BOUNDARIES_FILE_PATH)
相关问题