成品

(网站迁移中)

教程

项目结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.
│.gitignore
│vercel.json
├─.vercel
│ project.json
│ README.txt
├─api
│ acg.py
│ test.py
└─img
└─acg
001.png
002.png
...
099.png
100.png

在项目根目录下创建”api”文件夹,在api中创建可执行文件(如index.py),则该文件会被尝试执行,如果将可执行文件直接放在根目录,则会被当作文本文件读取.

文件示例

acg.py文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
from http.server import BaseHTTPRequestHandler
import random
class handler(BaseHTTPRequestHandler):
def do_GET(self):
random_number = random.randint(1, 100)
formatted_number = "{:03d}".format(random_number)
redirect_url = f'https://api.night1918.top/img/acg/{formatted_number}.png'
self.send_response(302)
self.send_header('Location', redirect_url)
self.end_headers()
return

test.py文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
from http.server import BaseHTTPRequestHandler
class handler(BaseHTTPRequestHandler):
def do_GET(self):
if self.headers.get('Custom-Header') == 'luck':
# 只有当请求头为'luck'时,会返回指定值,否则返回403
self.send_response(200)
self.send_header('Content-type', 'text/plain')
self.end_headers()
self.wfile.write("lucky boy".encode())
else:
self.send_error(403)
return

配置文件

在项目根目录下创建文件vercel.json,通过该文件可以配置运行环境,自定义路由等.

1
2
3
4
5
6
7
8
9
10
11
12
{
"routes": [
{
"src": "/acg",
"dest": "/api/acg"
},
{
"src": "/test",
"dest": "/api/test"
}
]
}

例如上面的json代码指定使用/api/acg.py文件执行/acg路由的请求.

部署

在项目根目录下打开命令行,执行vercel --prod即可将项目部署到vercel中,访问https://<你的域名>/api/acg即可看到效果