簡體   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