我正在web.py,postgres和redis之上建立一个网站。在我的应用程序的一些视图中,有一些用户特定的信息。例如,如果用户登录,则顶部栏上的链接将与非登录用户的视图或“welcome $ username”之类的内容不同。我可以通过渲染每个页面来响应每个请求来实现它。除了用户指定信息之外,某些视图的其他部分完全相同。所以我想缓存渲染的页面。我想出了一些实现方法,但我不知道要使用哪种方法,因为我自己也在学习Web开发,我想知道专业Web开发人员如何处理这个问题。
以下是我的方法:
我该怎么办?有更好的解决方案吗?对不起,我的英语写作能力很差:( 希望它可以表达我想问的问题。任何帮助将不胜感激,并提前感谢!谢谢! :d
编辑:包含用户特定信息的代码就像这样
<nav>
<div class="wrapper">
<div class="primary">
<ul class="nav">
<li><span>Home</span></li>
<li><span>About</span></li>
<li><span>Contact</span></li>
</ul>
</div>
<div class="secondary">
$if session.logged_in:
<span>Welcome, $session.username</span>
<a href="/new">new post</a>
<a href="/logout">logout</a>
$else:
<a href="/register">register</a>
<a href="/login">login</a>
</div>
</div>
</nav>
我现在正在使用会话,这意味着我不能只为每个用户缓存一个版本。 stackoverflow.com如何实现这一点?当我没有登录时,我看到顶栏中的信息是不同的,并确定我知道每个用户的视图都不同......
答案 0 :(得分:0)
事实证明,大多数网站只缓存数据而不是最终的html文件。这更易于管理,实施起来更灵活。虽然仍然要在每个请求上呈现页面,但可以减少数据库的负载。对于未登录的用户,app可以选择缓存最终的html页面。我一直在考虑缓存最终的html文件。我真是个白痴.......