首页 > Flask 手机版和PC版模板的代码设计问题

Flask 手机版和PC版模板的代码设计问题

不想专门为手机站设置二级域名。想通过http://127.0.0.1/m/ 的路由方式直接跳转到手机版网页。
虽然手机版和PC版的模板布局不一样,但是它们调用的后台数据是一模一样的。
目前我能想到的办法:

在每个view页面里再添加一个路由如:

如 views/index.py

# PC版
@main.route('/', methods=['GET', 'POST'])
def index():
    page = request.args.get('page', 1, type=int)
    pagination = BaicaiModel.query.paginate(page, per_page=40, error_out=False)
    posts = pagination.items
    
    return render_template("index.html", posts=posts, pagination=pagination)

# 手机版
@main.route('/m/', methods=['GET', 'POST'])
def m_index():
    page = request.args.get('page', 1, type=int)
    pagination = BaicaiModel.query.paginate(page, per_page=40, error_out=False)
    posts = pagination.items
    
    return render_template("m/index.html", posts=posts, pagination=pagination)

但是这样的话,就有三行代码是一模一样的,这样就太臃肿了!

大家在设计手机版和PC版模板的时候,都是怎样设计代码的呢?
简单提供下思路即可,谢谢了!


from flask import Flask,request
app = Flask(__name__)

app.debug = True

@app.route('/')
@app.route('/m/')
def hello_world():
  tpl = 'm/index.html' if request.path.startswith('/m/') else 'index.html'
  return 'Hello World! %s' % tpl

if __name__ == '__main__':
  app.run()
【热门文章】
【热门文章】