1、前言
上节,我们介绍了Deta的数据库服务Base,今天我们就继续介绍Deta的另一个重量级应用。它就是Micro。
Micro是一款轻量级但可扩展的云运行时,与HTTP端点相关联。它们旨在让你的应用程序启动并以极快的速度运行。让开发者专注于编写代码,Deta会处理所有其他事情。
现有的比如Vercel、Github Pages等都可以对静态站点进行托管,但是免费场景下,还无法对Python、Node等后端动态服务进行托管。所以类似微信云托管这样的动态后端服务托管超频就应运而生了。
Deta的Micro就是类似微信云托管这样的一款免费的云运行时产品。
Micro支持的Runtime(运行时):
- Python: 3.7, 3.8, 3.9
- Nodejs: 12.x, 14.x
目前Micro的资源是比较小的,如果有需求可以申请扩容。但是免费的资源运行小项目还是足够的。
2、快速开始
2.1、下载Deta-cli
Mac&Linux:
代码语言:javascript复制brew install deta-clicurl -fsSL https://get.deta.dev/cli.sh | sh
Windows:
代码语言:javascript复制iwr https://get.deta.dev/cli.ps1 -useb | iex
安装完成后,deta已经自动添加到了~/.zshrc中了。我们重新打开命令行即可操作deta。
2.2、登录Deta
代码语言:javascript复制deta login
执行如上命令后,系统会自动打开浏览器,我们在浏览器中登录即可。
登录成功提示:
代码语言:javascript复制Please, log in from the web page. Waiting...
https://web.deta.sh/cli/50481
Logged in successfully.
2.3、创建micro项目
代码语言:javascript复制deta new --python first_micro # 创建Python项目
默认的,first_micro的Micro服务会创建到default项目中。
我们指定项目创建Micro服务:
代码语言:javascript复制deta new --python first_micro --project phyger # 将Micro服务创建到phyger项目中
我们登录到Deta的控制台进行查看:
2.4、查看项目结构
2.5、添加依赖并开发HelloWorld
默认Micro项目中没有依赖文件requirements.txt文件,我们需要在项目根目录下创建它。
代码语言:javascript复制echo fastapi > requirements.txt
就像上面这样,我们就可以在main.py中直接编写FastApi业务代码了。
向requirements.txt加入deta模块,我们计划在Micro中使用Deta的Base进行数据查询展示。
代码语言:javascript复制项目代码中用到了外部模块都需要加入到requirements.txt中。
key = 'key1112233444'
# 1) 导入deta
from deta import Deta
# 2) 初始化项目
deta = Deta(key)
# 3) 创建数据库
user_info = deta.Base("user_info")
from fastapi import FastAPI
app = FastAPI()
@app.get('/list')
async def listUser():
ret = user_info.fetch()
return ret._items
如上,我们开发了一个FastApi的list接口,就是去查询了Deta的Base数据表user_info中的信息,然后将其展示出来。
2.6、项目部署
代码语言:javascript复制deta deploy
执行完上述命令稍等片刻,项目即可部署成功。
部署完成后,我们登录Deta控制台就可以看到项目的域名了。Deta为我们提供了deta.dev
的二级子域名。
我们的接口uri是list
,要访问我们的接口,只需要将域名和接口名称拼接即可,拼接之后的结果是:https://p3k96r.deta.dev/list
,我们在浏览器打开看看效果:
可以看到,结果完全是我们想要的。你通过任何可以上网的设备都是可以访问的。使用Deta完全可以开发出一个类似博客的前后端分离系统。
2.7、自定义域名
Deta更为贴心的是还为开发者准备了可以自定义域名的功能,这样我们就可以使用自己的名字等具有特殊意义的字符去自定义自己的二级域名。
前提是你的域名不能和别人的重复。否则无法添加成功。
3、静态资源呢?
如上,我们已经能够使用Base和Micro进行简单的项目开发了,但是项目中用到的静态资源,比如图片视频等如何保存使用呢?
别急,还记得Deta的另一个服务Drive吗?它就是用来解决这个问题的,下节我们继续介绍Drive。