代码之家  ›  专栏  ›  技术社区  ›  Alexander

当我们使用Heroku部署应用程序时,为什么需要设置AWS和POSTgres db?

  •  0
  • Alexander  · 技术社区  · 4 年前

    我正在通过观看下面的youtube视频构建一个web api,直到AWS S3 bucket设置完成,我都能很好地理解。首先,他将所有东西从Grepos3和SqlDbAWS传输到本地,然后,他将所有东西都从SqlDbAWS传输到本地,但所有东西都是静态的。

    django portfolio

    为什么我们需要使用AWS来设置静态文件位置和rds(关系数据库),并从一开始就做这些事情。还是不明白!

    有人能解释一下吗? 谢谢

    1 回复  |  直到 4 年前
        1
  •  1
  •   Agate    4 年前

    数据库

    视频指南鼓励您从SQLite切换到数据库服务器(如MySQL或PostgreSQL)有几个原因:

    1. 如果要跨多台服务器分发应用程序,SQLite将不起作用。回到Heroky,如果你为你的应用程序提供多个Dyno,你会遇到问题,因为每个Dyno将使用一个不同的SQLite数据库。如果您通过管理员编辑某些内容,它将随机发生在其中一个数据库上,导致不一致
    2. 某些Django功能在SQLite上不可用

    然而,它通常不适合制作网站。此外,虽然存储您的 sqlite.db 例如,在git存储库中,这被认为是一种不好的做法,因为您的数据库可能包含敏感数据(例如密码、用户名、电子邮件等)。因此,在代码和数据之间严格分离是一种很好的做法。

    另一种说法是,代码和数据具有不同的生命周期。您希望能够在不重新部署代码的情况下编辑数据库中的数据,并在不接触数据库的情况下更新代码。

    静态文件

    当您在本地工作时,Django是内置的 runserver

    因此,您需要在其他地方托管这些静态文件,AWS是一个可以这样做的地方。AWS将以非常高效的方式为您提供这些文件。还有其他可用选项,例如,如果您使用的是专用服务器,则使用Nginx配置反向代理为您提供文件服务。

    运行服务器 ),然后转到更复杂、更抽象的主题和工具。