连接redux与django和postgres

时间:2016-04-01 02:51:01

标签: django postgresql reactjs redux

有没有人有将redux与django和关系数据库连接的经验?

主要是我希望能够将数据库中的数据加载到创建redux存储所需的initialState对象中,而无需使用ajax调用。

有任何建议/想法吗?

2 个答案:

答案 0 :(得分:3)

默认情况下,Redux与任何类型的后端都没有关系,并不是它的用途。

Redux是一个管理应用程序中商店的工具,而不是存储或获取信息。

从外部源获取信息并将其放入redux的方式取决于您。大多数人使用API​​来执行此操作,因此使用Django,您可以手动设置API或查看Django Rest Framework,这将为您提供一个很好的API。

连接Redux和API的方式是通过异步操作,可能是thunk中间件(see the redux doc here)。要在页面加载时加载数据,只需调度操作以在应用程序开始时获取数据。

您还可以查看graphQL qhich是另一种将商店数据与数据库连接的方法。对于Django,应用程序是Graphene。这种设置可能非常强大,但设置的时间可能更长,而且更新近,因此更少的子弹,并且可能会发生变化。此外,API也可以被比graphQL更多的应用程序使用。但是GraphQL具有更灵活,易于设置后适应的优势。

答案 1 :(得分:0)

所以这就是我最终做到的方式,它非常hacky所以我可以通过其他方式开放,但我想看看初始加载的API调用与使用django之间的性能差异要加载的框架。由于我还在编写API调用操作和缩减器,但仍然无法测试差异,但是当我开始处理时,我会更新。

{% block content %}
<div id="root"></div>

<script>
    var Trainee = '{{trainee}}';
    var Events = JSON.parse('{{events_bb}}'.replace(/&quot;/g,'"'));
</script>

<script type="text/javascript" src="{% static "js/date_fns.min.js" %}"></script>
<script type="text/javascript" src="{% static "js/underscore-min.js" %}"></script>
<script type="text/javascript" src="{% static "js/moment.min.js" %}"></script>
<script type="text/javascript" src="{% static "js/index.js" %}"></script>
{% endblock %}

然后在我的initialState.js文件中

var trainee = Trainee;
var events = Events;

var initialState = {
    trainee: trainee,
    events: events,
  };

module.exports = initialState;