在java中,我们通常会加一个filter进行过滤拦截,然后通过对request和response的处理,从而针对一些不同的请求场景做处理,比如手机访问pc站,需要拦截跳转的m站去。
在Python flask中,我们用装饰器( decorator)来进行拦截处理。
import re
from functools import wraps
from flask import request, redirect
# func是使用该修饰符的地方是视图函数
# 拦截手机站点 跳转手机页面
# mFunc 用来自定义m站跳转链接 pcFunc同理
def pagefilter(pc=True, mFunc=None, pFunc=None):
def decorator(func):
@wraps(func)
def _decorator(*args, **kwargs):
pcRedirectUrl = pFunc(*args, **kwargs) if pFunc != None else '/'
mRedirectUrl = mFunc(*args, **kwargs) if mFunc != None else '/m'
if checkMobile(request):
# 如果没有就重定向到登录页面
if pc:
return redirect(mRedirectUrl)
else:
return func(*

在Flask框架中,借鉴Java中的Filter思想,我们可以利用装饰器进行请求拦截。当手机访问PC站点时,通过装饰器实现重定向到移动端的相应视图,同时保持请求参数不变。此方法适用于需要精确跳转到特定移动页面的情况。
最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



