Django 是一种流行的 Python Web 框架,用于开发动态 Web 应用程序。AWS Elastic Beanstalk 是一种平台即服务 (PaaS),可让您轻松部署和管理 Web 应用程序。如果您以前从未使用过 Django 或 Elastic Beanstalk,那么本教程将逐步引导您完成在 Elastic Beanstalk 中部署 Django 应用程序的整个过程。
2. 解决方案
步骤 1:创建 Django 项目
- 安装 Django。您可以使用 pip 安装 Django:
pip install django
- 创建一个新的 Django 项目:
django-admin startproject myproject
- 进入项目目录:
cd myproject
步骤 2:创建 Django 应用程序
- 在项目目录中,创建一个新的 Django 应用程序:
python manage.py startapp myapp
- 在应用程序目录中,创建一个新的视图函数:
# myapp/views.py
from django.shortcuts import render
def home(request):
return render(request, 'home.html')
- 在应用程序目录中,创建一个新的模板文件:
# myapp/templates/home.html
<h1>Home</h1>
步骤 3:配置 Django 项目
- 在项目目录中,编辑
settings.py
文件,并添加以下内容:
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
- 在项目目录中,编辑
urls.py
文件,并添加以下内容:
# urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')),
]
步骤 4:部署 Django 应用程序
- 在项目目录中,创建一个新的
.elasticbeanstalk
目录:
mkdir .elasticbeanstalk
- 在
.elasticbeanstalk
目录中,创建一个新的config.yml
文件,并添加以下内容:
# config.yml
option_settings:
aws:elasticbeanstalk:container:python:
NumProcesses: 2
NumThreads: 4
- 在项目目录中,运行以下命令:
eb init
- 按照屏幕上的说明进行操作,将您的应用程序部署到 Elastic Beanstalk。
步骤 5:测试 Django 应用程序
-
打开您的 Web 浏览器,并导航到您的应用程序的 URL。您应该会看到一个显示“Home”的页面。
-
单击“Home”链接,您应该会看到一个新的页面,显示“Hello, world!”。
代码示例
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
# urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')),
]
# views.py
from django.shortcuts import render
def home(request):
return render(request, 'home.html')
# home.html
<h1>Home</h1>
# config.yml
option_settings:
aws:elasticbeanstalk:container:python:
NumProcesses: 2
NumThreads: 4