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