Django下载文件系列

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
第一章 开发应该了解的Web文件下载
第二章 Django下载文件-三种方法
第三章 Django下载文件-Office文件下载
第四章 Django下载文件-Kml文件下载


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Django下载文件系列
  • 前言
  • 一、simplekml的安装和使用
    • 1.安装
    • 2.文件创建和保存
    • 3.kml的点线面
    • 4.复杂信息
  • 二、kml的下载
    • 1.生成文件后下载
    • 2.文件流传输下载
  • 总结

前言

提示:这里可以添加本文要记录的大概内容:

kml文件的应用主要是在地理空间信息处理方面,python中有很多地理空间的库,django框架提供了geodjango内置框架支持建立地理空间web系统,生成kml文件和下载kml文件正是在这样的场景中的基本需求。本文简要说明如何实现kml文件的下载。


提示:以下是本篇文章正文内容,下面案例可供参考

一、simplekml的安装和使用

simplekml库的描述很清晰,即能够以尽可能少的工作量生成kml。

1.安装

pip install simplekml

2.文件创建和保存

import simplekml
kml = simplekml.Kml()
kml.newpoint(name="Kirstenbosch", coords=[(18.432314,-33.988862)])
kml.save("botanicalgarden.kml")

3.kml的点线面

import simplekml
kml = simplekml.Kml()
pnt = kml.newpoint(name="shanghai", coords=[[121.4222, 31.218123]])
# lon, lat, optional height
pnt.description = "描述信息: 东方魔都"
pnt.style.labelstyle.color = simplekml.Color.red  # 设置字体颜色  'ffff0000'
pnt.style.labelstyle.scale = 2                    # 设置字体大小
pnt.style.labelstyle.scale = 0.0                  # 隐藏字体 name
pnt.iconstyle.icon.href = ''  # 取消图标
pnt.iconstyle.icon.href = 'http://maps.google.com/mapfiles/kml/shapes/placemark_circle.png'  # 设置图标
pnt.style.iconstyle.scale = 3  # 设置图片的大小
kml.save("上海.kml")

4.复杂信息

此处以行政区域为例。


kml = simplekml.Kml(name='tianyi map')
polygon_list = '' # 行政区域的多边列表
multipolygon = kml.newmultigeometry(name='行政区域')
multipolygon.description = '行政区域'
# print(len(polygon_list))
for polygon in polygon_list:multipolygon.newpolygon(outerboundaryis=list(polygon[0]))
kml.save("行政区域.kml")

二、kml的下载

1.生成文件后下载

def download(request):file_name = 'download_history.kml'path = Path(__file__).resolve().parentfile_kml = os.path.join(path, file_name)kml = simplekml.Kml(name='tianyi map')pnt = kml.newpoint(name="shanghai", coords=[[121.4222, 31.218123]])# lon, lat, optional heightpnt.description = "描述信息: 东方魔都"pnt.style.labelstyle.color = simplekml.Color.red  # 设置字体颜色  'ffff0000'pnt.style.labelstyle.scale = 2                    # 设置字体大小pnt.style.labelstyle.scale = 0.0                  # 隐藏字体 namepnt.iconstyle.icon.href = ''  # 取消图标pnt.iconstyle.icon.href = 'http://maps.google.com/mapfiles/kml/shapes/placemark_circle.png'  # 设置图标pnt.style.iconstyle.scale = 3  # 设置图片的大小kml.save(file_kml)with open(file_kml, 'rb') as f:response = HttpResponse(f)response['Content-Disposition'] = 'attachment; filename="{0}"'.format('111')response['content_type'] = "application/application/octet-stream"return response

2.文件流传输下载

def download(request):kml = simplekml.Kml(name='tianyi map')pnt = kml.newpoint(name="shanghai", coords=[[121.4222, 31.218123]])# lon, lat, optional heightpnt.description = "描述信息: 东方魔都"pnt.style.labelstyle.color = simplekml.Color.red  # 设置字体颜色  'ffff0000'pnt.style.labelstyle.scale = 2                    # 设置字体大小pnt.style.labelstyle.scale = 0.0                  # 隐藏字体 namepnt.iconstyle.icon.href = ''  # 取消图标pnt.iconstyle.icon.href = 'http://maps.google.com/mapfiles/kml/shapes/placemark_circle.png'  # 设置图标pnt.style.iconstyle.scale = 3  # 设置图片的大小print(kml.kml())response = HttpResponse(kml.kml())response['Content-Disposition'] = 'attachment; filename="{0}"'.format('111')response['content_type'] = "application/application/octet-stream"return response

总结

提示:这里对文章进行总结:

以上就是今天要讲的kml下载内容,本文仅仅简单介绍了simplekml的使用,更具体的用法请参考官方文档。

【Django下载文件-Kml文件下载】相关推荐

  1. java 跨域 下载文件_文件下载重命名(可跨域)

    一.正常情况下,我们都如此下载文件并修改文件名,在a标签上面添加download属性 var link = document.createElement('a'); link.href = file. ...

  2. Django下载文件中文乱码 FileResponse 浏览器正确识别文件名和文件大小的简单方法

    起因 工作需要维护一个工单系统,下载文件时如果文件名有中文会导致乱码,并且下载时不显示文件的完整大小,没有进度条 修改 原先接口是这样写的 # view入口 class DownFile(BaseVi ...

  3. android程序内下载文件,android文件下载代码 android程序 里如何编写下载代码

    android开发文件下载在手机报错 package cc.download; import android.app.Activity;import android.os我比任何人都懂你不会真的陪我到 ...

  4. vue-axios下载文件流blob,ie下载报传递给系统调用的数据区域太小.ie文件流下载报错;文件下载失败将blob的错误信息转换成json格式

    本次下载是后台文件流传输,前端下载,前端将拿到的下载id和名称downloadName传递给下载方法:如果是多个下载,可以采用数组for循环 情景描述: 1.如果符合导出条件, 后端直接返回数据流,如 ...

  5. 【Django】Django+Ajax下载文件(使用FileResponse)

    1.说明 使用Django下载文件的方式有多种,这里使用的是FileResponse对象返回文件即可 # 视图函数 @csrf_exempt def getFinanceBalanceFile(req ...

  6. SpringBoot打成jar包部署,Excel模板下载文件损坏,提示恢复问题处理

    Spring Boot 静态资源Excel模板文件下载遇到的坑 问题描述: 使用spring boot,在resource/static目录下,有Excel模板文件, 需要提供给用户下载,用于数据的导 ...

  7. antd下载文件小结

    下载的核心方法 export const contextPath = process.env.NODE_ENV === 'production' ? '/portal' : ''; //'/porta ...

  8. Django Ajax下载文件(动态文件下载实现)

    前端埋一个隐藏的表单,用于传值: <form id="hidden_form">{% csrf_token %}<input type="hidden& ...

  9. python实现文件下载-python实现上传下载文件功能

    最近刚学python,遇到上传下载文件功能需求,记录下! django web项目,前端上传控件用的是uploadify. 文件上传 - 后台view 的 Python代码如下: @csrf_exem ...

最新文章

  1. 深入Hotspot源码,搞清楚JVM的本质
  2. 转载:oracle RAC集群启动和关闭
  3. Oracle等待事件之Latch Free
  4. 13道Python数组练习题
  5. python游戏开发工程师_Python开发工程师-入门与实战视频课程
  6. oracle 31693,ORACLE expdp备份与ORA-31693、ORA-02354、ORA-01555
  7. 软件工程测试旅游管理系统,旅游管理系统的设计与实现
  8. java语言就业方向_2019年汉语言专业最全就业方向
  9. mongodb 高可用分布式原理 ---------搭建高可用mongo集群前需要温习的知识-火
  10. 3D建模就业前景如何?
  11. QT报错: ‘C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe‘ failed
  12. Swift零基础学习之用TableView做个景点App
  13. hexo+yilia修改代码块等样式
  14. python直接下载图片到内存
  15. mysql两个时间相减的分钟数_mysql 俩个时间相减后取分钟
  16. 哈希表除留取余法的桶个数为什么是质数
  17. NF5280M4 安装 Win2016 的方法
  18. SaaS模式在国内的基本现状研究
  19. SNMP实验(需要snmpb)
  20. 三星 联通 i9502 root 未安装su二进制

热门文章

  1. Consider injecting the bean as one of its interfaces or forcing the use of CGLib-based proxies 问题解决
  2. 用python自动推送文章到kindle
  3. cms32L051 掉电深度睡眠的唤醒
  4. 数学规划模型之线性规划
  5. CacheLoader returned null for key分析和解决
  6. 每日必读DZone News—对DevOps的关注
  7. 小甲鱼Python学习笔记之函数(四)
  8. 计算机大神专业小说,5本高人气系统流小说,无敌满足你,一路爽到底,全部是大神出品...
  9. 麦田守望者--走出软件作坊:三五个人十来条枪 如何成为开发正规军(四十三)
  10. 学编程要学好英语吗?