我有一个django视图,它返回一个变量以便在模板中呈现
return render_to_response('index.html', {
'courses': courses})
我使用ReactJS呈现index.html文件,但我不确定是否必须在我的视图或ReactJS文件中指向index.html。
如果我必须指向index.html,我如何在React中使用courses变量?
更新 我传递的变量课程是dictionnary类型
答案 0 :(得分:1)
模板处理在任何类型的JavaScript解释之前。这意味着在某种意义上,您必须模仿js标记之间的硬编码。
首先,要知道在客户端收到python字典时可能会损坏它。为防止这种情况,您可能希望将其作为json对象发送。这意味着,在脚本views.py中,您必须json.dumps
您的字典。如下
from django.shortcuts import render
import json
#...
#...
return render(request,
'your_app/index.html',\
{'courses': json.dumps(courses)}\
)
请注意,我使用render
代替render_to_response
,因为render
is a brand spanking new shortcut for render_to_response in 1.3 that will automatically use RequestContext
另外,请注意,您必须指向index.html,但具体路径取决于项目的结构。上面,我假设你遵循推荐的django项目布局,即
myproject/
manage.py
your_project/
__init__.py
urls.py
wsgi.py
settings/
__init__.py
base.py
dev.py
prod.py
your_app/
__init__.py
models.py
managers.py
views.py
urls.py
templates/
your_app/
index.html
[...]
然后,在html方面,
...
<script>
var courses = {{courses|safe}}
// working with the variable courses
</script>
...
现在,您可以使用ReactJS库来执行您想要的操作。