类似于那种定时抢购的逻辑。
时间没到之前是个介绍页面,时间到了之后进入真正的 view 处理函数。
触发条件不一定是时间,也可能是后台控制的。就是要做到程序不重启,同一 url 对应的 view 变了。
我是这样做的,加了个全局变量,然后在 url 对应个 view 函数里做判断,后台改变这个全局变量,执行不同的 view 函数。
IS_RELEASE 是全局变量,entrance 函数是入口函数,release 函数是改变入口的视图函数。
IS_RELEASE = False
def entrance(request):
global IS_RELEASE
if IS_RELEASE:
return index2022(request)
else:
return index2(request)
@login_required
def release(request):
global IS_RELEASE
if IS_RELEASE:
IS_RELEASE = False
else:
IS_RELEASE = True
return redirect("/conf/")
这个方法在本地调试没问题,但是上到服务器后,出现执行 release 函数后 IS_RELEASE 没按预期改变,或者有秒级的延迟,我猜是不是有 cdn 的影响,但是这个都应该是动态页面,每个请求都要回服务器处理的。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.