繁体   English   中英

在AWS Elastic Beanstalk上部署Python

[英]Deploying Python on AWS Elastic Beanstalk

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

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

我最近尝试从AWS官方网站上学习教程,但没有运气。

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

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

非常感谢!

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

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

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

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

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

  2. 在此处查看有关如何使用Python的AWS Elastic Beanstalk文档。 如果您选择其中一个,请阅读部署Django应用程序部署Flask应用程序 您需要提供Elastic Beanstalk环境(mod_wsgi)所需的内容。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM