我正在尝试设置一个项目,使用Django作为后端,使用React作为前端。该项目有几个屏幕,数据库中的大量信息和图像生成的后端,并将包括一些身份验证和不同屏幕的用户权限。
根据我所发现的-最好的方法是让Django呈现一个html文件:
def index(request):
return render(request, 'frontend/index.html')
它引用.js文件:
<script src="{% static "frontend/main.js" %}"></script>
这是用Webpack创建的。
此main.js使用REST api从Django检索所需的数据:
fetch("...some Django endpoint..").then(response => ... this.setState(...retrieved data...))
不同于仅将Django用于后端+ Django模板用于前端时,后端可以直接将上下文发送到模板:
def index(request):
context = {'information': .... retrieve info from DB}
return HttpResponse(loader.get_template('bla/index.html').render(context, request))
模板可以直接使用此信息,而无需再次引用后端:
{% for bla in information %}
我想知道这是不是一个合理的设置?
让前端使用REST来检索它需要的每一条信息,而让后端为它需要提供的每一部分数据公开另一个REST api,这似乎有点过分(而不是仅仅将所有信息推送到一个字典中,并将其与模板一起发送)。
此外,它需要至少2个RTT来呈现整个页面(我想这通常是可以的)
https://stackoverflow.com/questions/52439996
复制相似问题