Q-Logo 我的学习笔记分享

Entries for category "coding"

用Nuitka将Fastapi应用打包成exe

main.py内容如下:

from typing import Optional

from fastapi import FastAPI

app = FastAPI()

@app.get("/")

def read_root():

return {"Hello": "World"}

@app.get("/items/{item_id}")

def read_item(item_id: int, q: Optional[str] = None):

return {"item_id": item_id, "q": q}

if __name__=='__main__':

import uvicorn

uvicorn.run(app, host="0.0.0.0", port=8000)

在main.py所在目录中打开命令行窗口,执行如下Nuitka打包命令:

python -m nuitka --standalone --mingw64 --show-memory --show-progress --nofollow-imports --include-package=uvicorn --include-package=click --include-package=h11 --include-package=starlette --include-package=fastapi --output-dir=o main.py

等待几分钟,即可打包完成。打包后会生成o/main.dist 目录,双击此目录下的main.exe即可启动FastAPI服务。服务启动后,在浏览器访问http://localhost:8000/,可查看到响应字符串

{"Hello":"World"}

使用指定JDK环境启动eclipse

修改有jdk环境问题的eclipse的配置文件eclipse.ini,在-vmargs配置参数之前增加-vm配置参数,只想指定jdk安装目录下的bin\server\jvm.dll文件。修改完成后,再双击eclipse.exe重启,就会使用这个指定的jdk环境了。

例如:

-vm

C:\Program Files\Java\jdk-15\bin\server\jvm.dll

用simplekml设置和转换KML 文件中的颜色

KML 文件中,要为点、线等设置颜色时,一般用<color>标签,例如

<color>FF0000FF</color>

<color>标签的文本内容,是为以BGR(AABBGGRR,其中AA是alpha,表示不透明度;B、G、R分别表示Blue、Green、Red即蓝、绿、红三种颜色,任何一种颜色的取值范围都是 0 到 255,一般用两位十六进制表示(00 到 FF))。上例中的FF0000FF,表示红色,具体来看:前两位FF表示完全不透明,第三、四位00表示蓝色分量为0,第五、六位00表示绿色分量为0,第七、八位FF表示红色分量为FF。

这种表示方式与平时常用的RGB方式略有不同。当我们自己写KML文件时,需要注意这里的区别,如果需要的话,要将RGB方式表示的颜色表示为KML要求的BGR格式。

SimpleKML简介

SimpleKML 是一个Python 包,能帮助我们方便地生成kml或kmz文件。

例如下面的代码就可以创建一个位于指定经纬度的点,以及一条宽度为10颜色为红色的线:

import simplekml
kml = simplekml.Kml()
kml.newpoint(name="示例点", coords=[(18.432314,-33.988862)])
# lon, lat, optional height

lin = kml.newlinestring(name="Pathway", description="A pathway in Kirstenbosch",
coords=[(18.43312,-33.98924), (18.43224,-33.98914),
(18.43144,-33.98911), (18.43095,-33.98904)])
lin.style.linestyle.color = 'FF0000FF'
# Red
lin.style.linestyle.width= 10
# 10 pixels
kml.save("pointexample.kml")

用SimpleKML转换颜色格式

如果我们已经有了RGB格式表示的颜色,需要转换为SimpleKML要求的BGR颜色,也很简单,直接使用simplekml.Color.hex()即可,例如要将RGB格式的红色'FF0000'转换为SimpleKML要求的'FF0000FF',可以这样转换

simplekml.Color.hex('FF0000')

除此之外,SimpleKML 还提供了其他的转换函数,可以自行查阅使用

二维码生成器

二维码生成器

如果想要生成二维码,可以访问本站提供的 https://act.qcloud.fun/qrcode/ ,此网站提供了极简版高级版两个版本的二维码生成器,都是完全免费使用的。可以直接用微信扫描下面的二维码在手机上打开使用

qcloud-qrcode.png

极简版二维码生成器

极简版二维码生成器使用非常简单,只需要在文本输入框中输入想要的文字,就会立即生成对应的二维码,界面如下:

qrcode-generator-simple.PNG

高级版二维码生成器

高级版二维码生成器,在极简版基础上,还提供了以下功能:

  1. 在中心添加文字Logo
  2. 在中心添加图片Logo
  3. 设置码点大小、容错级别、内边距
  4. 设置码点、背景、码眼框、码眼心的颜色
  5. 设置码点的特殊效果,如液化、圆化、点化
  6. 为二维码添加背景图片

具体使用起来也很简单,只需要打开二维码生成器(高级版)选项卡,在文本输入框中输入想要的文字后,根据需要进行高级设置,就会立即生成附加对应效果的二维码,界面如下:

qrcode-generator-advanced.PNG

如果使用过程中有任何问题,可以通过二维码生成器页面上的邮箱联系我。