首页 > 解决方案 > 全栈 React、Redux、Python/Flask、PostgreSQL Heroku 应用程序

问题描述

抱歉,如果其中一些问题有点业余,我是一个有抱负的开发人员,有几个像样的项目。如果您能帮助回答其中几个问题,那将非常有帮助。

我正在尝试针对我的技能水平解决一个非常雄心勃勃的项目,我需要帮助找出我应该使用的设计模式。我正在专门为我必须为一家我目前正在面试的公司做的演示而构建这个项目。就像我在标题中所说的那样,我想要使用的技术堆栈将是:

React、
Redux、
Flask/Python、
PostgreSQL、

我想在 Heroku 上托管它。

我之前构建了一个基于 React/Redux 的应用程序,但我基本上使用 localstorage 和 Redux 作为伪数据库/后端。我现在的目标是构建一个完整的堆栈、单页应用程序,但我想确保尽早做出正确的设计决策,以使我的代码看起来尽可能专业。

我想建立一个简单的问题跟踪器。现在我只想构建一个项目,您可以在其中登录,创建一个项目(这只是一个票的集合),创建票,并能够更新这些项目/票。目前,用户之间不会有任何交互,即用户只能查看他们自己创建的项目和票证并与之互动,但最终我希望用户可以进行协作、互相分配票证、互相邀请从事同一个项目等。

我遇到的一件事是概念化单页应用程序如何适应经典的 MVC 架构。在我看来,单页应用程序根本不遵循 MVC 架构。我能找到的大多数烧瓶教程都构建了简单的 Web 服务器,每次发出新的 HTTP 请求时都会提供一个 HTML 页面。但是,这对于单页应用程序没有意义,对吧?重点是整个应用程序同时加载,因此您不必不断请求新网页。

那么路由是如何工作的呢?我在第一个项目中使用了 React Router,但它不与后端通信,它只是根据 URL 呈现一个新组件。那么当这种情况发生时,Redux 存储是否应该对其需要的数据进行 http 请求?如果是这样,那是否会破坏单页应用程序的目的,即限制对后端的请求数量?我应该在一开始就对所有数据发出一个 HTTP 请求并将其存储在 Redux 存储中吗?

我读过一些单页应用程序并不是真正的单页应用程序,而是实际上被分成了几个更小的块。这是一个可取的方法吗?为了给未来的面试官留下深刻印象,我不应该努力制作一个真正的单页应用程序吗?

使用 PostgreSQL 有意义吗?我真的只决定使用 PostgreSQL,因为这是大多数 Heroku 教程中使用的数据库,但可以使用 mysql

再次为其中一些问题的模糊、笼统和业余性质感到抱歉,但我真的想让这个项目变得更好。

标签: flasksingle-page-applicationbackendheroku-postgresreact-fullstack

解决方案


您看到的 Flask 教程使用了它附带的模板引擎 (Jinja),因为它们没有单独的前端框架。在您的情况下,Flask 应仅用作仅将 JSON 返回到前端的 API,并让它决定如何呈现数据,而不是呈现 HTML 页面本身。

PostgreSQL 使用起来很有意义,就像 MySQL 一样。它们是相似的,如果您使用 ORM(如 Flask 中经常使用的 SQLAlchemy),您将对它们使用相同的语句。但是,如果我没记错的话,Heroku 为 Postgres 提供了一个特殊的插件,这将使与它的集成比 MySQL 更容易。不过不确定。


推荐阅读