在AWS Elastic Beanstalk上部署Python

时间:2015-07-23 14:27:55

标签: python django amazon-web-services amazon-ec2

我来自php背景,现在我想在AWS上托管一个Python Web应用程序但是有一些问题。

  1. 我是否需要使用像Django / Flask这样的框架?反正我是否可以使用核心Python来做同样的事情?回到php,虽然我尝试在中间学习Laravel,但我能够使用带有apache的核心php并托管我的网站。
  2. 尝试在我的AWS上部署我的Python代码,但收到了缺少application.py的错误。我想知道,application.py究竟是什么以及它应该包含什么?同样,我在这里和那里看到的是什么wsgi.py。我需要为托管的Web应用程序创建这些实际文件吗?是否有一些特定的代码必须进入它们或者是由Django等框架预先创建的文件?因为我很难在网上找到太多关于它们的信息。
  3. 我最近尝试过AWS官方网站上的this教程,但没有运气。

    不愿意使用Django的原因是缺乏学习它的时间。但如果要让托管Python Web应用程序的任务更容易,我肯定会看到它。  那Python的版本是如何设置的?因为我编写的Python代码使用了BeautifulSoup和urllib的python3库。

    我已经在网上阅读了很多文章,但我在网上或使用AWS搜索Python的第一件事是Django或Flask等等。它究竟是如何工作的?当涉及到php时,将文件复制到服务器机器的/ www /文件夹中很简单,我可以通过它访问网站的网址。也许我已经阅读了太多帖子将它们放在一起所以有人可以直接为我设置它吗?非常感谢!

    非常感谢!

3 个答案:

答案 0 :(得分:2)

您将浪费更多时间尝试从头开始编写WSGI应用程序。使用框架,它将为您节省大量时间。

PHP与WSGI非常不同,WSGI远远低于PHP提供的开箱即用功能。 PHP更像是Python提供的框架。所以去学习一个框架。如果Django看起来太复杂,请首先尝试Flask。

另外,请不要尝试从一开始就在AWS上执行此操作,通过使用他们在您自己的盒子上提供的开发服务器来学习框架。只需完成各自的教程。

答案 1 :(得分:1)

  1. 实际上,AWS Elastic Beanstalk为您提供纯Python(2.6 / 2.7 / 3.4)和Apache + mod_wsgi作为Web代理。您可以在here中查看所有受支持的Python环境。因此,您可以在Web应用程序中使用任何Python Web框架(例如Django,Flask等)。如果可以,请选择AWS(Django / Flask)的通用和支持框架。

    您可以认为: Python + Apache + mod_wsgi 等同于 PHP + Apache + mod_php

  2. 请查看AWS Elastic Beanstalk文档,了解如何使用Python here。如果您选择其中一个,请阅读Deploying a Django ApplicationDeploying a Flask Application。您需要提供Elastic Beanstalk环境(mod_wsgi)所需的内容。

  3. 与PHP相同,Python实际上只复制和粘贴文件。如果您想在没有框架的情况下制作Python Web应用程序,则需要遵循WSGI标准。您可以查看this question。在我看来,如果你使用框架会更好,因为它会为你处理WSGI部分。

答案 2 :(得分:0)

首先,this是一个很好的博客文章,如果您使用的是Django

  1. 我不太了解Flask,一旦你理解了核心概念,Django根本不是很难。

  2. application.py是aws查找的文件,如我指出的博文中所述: 默认情况下,eb假设我们的wsgi文件名为application.py 这可以更改为Django在使用django启动项目时生成的本地wcgi.py文件。

  3. 请注意您要正确使用静态网址,以便aws从正确的文件夹中读取它们。我个人不同意帖子中静态文件配置的方式。 最好保持aws默认值为“static”,只需将django设置中的静态URL设置为“/ static /”