良好的实现:同构反应应用程序+ Python后端

时间:2019-07-11 11:57:18

标签: python reactjs webpack react-router isomorphic

使用以python作为后端服务的webpack来实现同构反应应用的最佳方法是什么

需要实施以下功能 1. React路由器 2. Redux商店

1 个答案:

答案 0 :(得分:0)

同构,我理解您的意思是同时在服务器和客户端上呈现-因此,该站点的首次访问将返回静态HTML和javascript捆绑包,然后用响应渲染的版本替换静态HTML。

通常,这意味着也要使用Node.js在服务器上运行javascript。这意味着您可以在服务器上呈现JSX / React模板/组件,并将其作为静态HTML发送给用户。如果您在服务器上使用Python,则无法在服务器上使用JSX / Javascript模板和逻辑,因此您需要在Python中复制它。

因此,由于必须全部执行两次,因此您首先需要确定要执行的操作。要么先使用Python,要么使用Javascript。

您可以先构建整个服务器端渲染的应用程序,然后由javascript接管,或者构建完整的javascript应用程序,然后使用Python呈现第一个视图。

就个人而言,对于内容驱动的网站,我更喜欢使用Django(最常用的Python Web框架)构建服务器端呈现的应用程序,然后在Javascript完全可以作为无JavaScript网站正常运行时在其上添加Javascript。这样的优点是即使禁用了javascript也可以正常工作,并确保您拥有良好的URL等。

当然,如果就用户交互而言这是一个非常复杂的应用程序,则需要以其他方式进行。

我建议先查看Django Here is a great tutorial from django-girls。但是,如果您要使用主要是JS的路线,请注意以下几点:

JavaScript优先

最好的方法可能是首先设计您的数据结构,然后为您的数据制作REST api。 (例如/api/1.0/cars/rustbucket_94发送JSON数据。)

接下来,找出面向用户的URL模式,并弄清楚需要引入哪些REST端点才能获取这些页面。 (网址应如何显示给最终用户,例如/cars/rustbucket_94.html

使用这些REST / JSON端点和react路由器正常设计您的React应用。

一旦您的整个React应用程序正常运行,您现在就可以构建整个内容的服务器端呈现版本,您需要从头开始重新实现它,并且可以通过JSON端点访问数据(慢)或通过在页面内部进行查询本身。

Python方面

后端要使用哪个Python框架?

我建议从Django开始。它非常强大,可以做任何您想做的事情。您可能也需要Django REST framework。还有其他选项,但这将是确保安全可靠运行的最快方法。

让Django与您的webpack / react工作流完美配合并不是太复杂。有诸如Django-Webpack-Loader之类的项目,以及有关它的在线各种教程,展示了如何使用它。

祝你好运。

相关问题