我正在使用Django作为后端和React js来构建应用程序的界面来构建应用程序。
我有一组要显示的帖子。
当前,我遵循的方法是-
获取链接了已编译js代码的模板。
然后再次拨打电话获得帖子
我的问题是-在这种当前方法中,我要对后端进行 2 GET 调用,一个用于呈现模板,然后再次用于获取Post。
实现此目标的最佳方法是什么?这是使用Django和React JS构建应用程序的常用流程吗?
答案 0 :(得分:1)
首先,我在两个请求中都没有发现任何错误,因为一个请求加载了应用程序本身,第二个加载了内容。对我来说,这种分隔是有意义的,如果您想重用端点,那么将来可能会有用,这会产生帖子(即内容)。
回答您的问题:如果出于某种原因,如果您绝对要使用单个GET加载所有内容,则这样做的一个好方法是将一系列帖子作为JSON序列化对象传递给上下文,然后将它们加载到Django模板中的JS上下文中。
即在view.py中:
from json import dumps
def view(request):
context = {
'posts':get_posts(),
}
render_to_response('django_template.html', context,
context_instance=RequestContext(request))
def get_posts():
qs = Posts.objects.all()
return dumps({'posts': qs })
在django_template中:
{% block content %}
<div id="root"></div>
{% endblock %}
{% block javascript %}
<script>
var INITIAL_POSTS = {{ posts|safe }};
</script>
<script type="text/javascript"
src="PATH_TO_STATIC_REACT_ASSET.JS"></script>
{% endblock %}
您现在应该将您的帖子放在JS上下文中,并将其加载到React组件中。再次:我同意丹尼尔·罗斯曼的评论