20240619:现在需要配置nodejs为18.x才可以部署。
1、 requirements.txt 2、 vercel_build.sh 3、 vercel.json 4、 修改wsgi.py 5、 修改settings.py
添加这两个文件,用于配置vercel
vercel.json 用于配置vercel
{
"version": 2,
"builds": [
{
"src": "config/wsgi.py",
"use": "@vercel/python",
"config": { "maxLambdaSize": "15mb", "runtime": "python3.9" }
},
{
"src": "vercel_build.sh",
"use": "@vercel/static-build",
"config": {
"distDir": "staticfiles"
}
}
],
"routes": [
{
"src": "/static/(.*)",
"dest": "/$1"
},
{
"src": "/(.*)",
"dest": "config/wsgi.py"
}
]
}
vercel_build.sh 用于安装依赖库,收集静态资源文件
pip install -r requirements.txt
python3.9 manage.py collectstatic --noinput
需要在wsgi.py文件里添加app变量
application = get_wsgi_application()
# 添加这一句
app = application
vercel处理django的静态文件,需要修改setttings.py
添加收集静态文件的配置,收集到 staticfiles 文件夹
STATIC_ROOT = BASE_DIR / 'staticfiles'
STATICFILES_DIRS = [BASE_DIR / 'static']
如果不使用数据库,需要去掉默认的sqlite配置
DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
# }
}
如果需要使用 vercel 的 postgresql 数据库,在 vercel 配置好数据库后,修改 settings.py 。
注意,连接 vercel 的 postgresql 数据库需要安全链接
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': os.getenv('POSTGRES_DATABASE', 'verceldb'),
'USER': os.getenv('POSTGRES_USER', 'default'),
'PASSWORD': os.getenv('POSTGRES_PASSWORD', 'postgres'),
'HOST': os.getenv('POSTGRES_HOST', '127.0.0.1'),
'PORT': int(os.getenv('POSTGRES_PORT', 5432)),
# vercel 的 postgresql 需要安全链接
'OPTIONS': {'sslmode': 'require'},
}
}
之后执行下面命令进行数据库迁移
python manage.py makemigrations
python manage.py migrate
配置截图
部署成功截图