Django:使用POST或链接,这是更好的做法?

时间:2013-01-04 21:02:56

标签: django

一个值得怀疑的问题。

<a href="{% url 'stuff.views.SomeView' %}/somethingnew">
    <button>See something new on this page</button>
</a>

<form action="" method="post">{% csrf_token %}
    <button name="somethingnew" type="submit" value=True>See something new on this page</button>
</form>

无论选择哪一种,我都会更新一些布尔变量,执行适当的计算,调用页面视图并使用something new on this page呈现页面。我使用任一方法的部分原因是保存布尔变量集合的状态。什么是最好的方法1)更改布尔变量2)保存其状态3)单击按钮时执行必要的更新,最后4)在基础数据更新后呈现页面?

现在,我使用的是表单而不是链接,因此我不需要为每个布尔变量编写一个url代码。哪种方法更好?一种方法是否会改善重新加载页面所需的时间(假设有许多布尔变量)?

1 个答案:

答案 0 :(得分:1)

1)遵循REST思维模式,POST请求是为了传输用户输入,因为您正在改变数据库对象。

2)如果永远不需要输入(会话持续时间),我将其保存在Session对象中。否则就像你现在在数据库中一样。

3/4)我会在表格中收集所有必要的信息。当用户在POST请求中提交表单时,我计算数据并使用包含计算结果的呈现页面进行响应。如果输入变量是通过间歇计算逐步收集的,我只需相应地更新输入表单(在组合框中显示不同的选项或类似的东西)。当然,传输也可以用AJAXy方式完成。