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

发布于 2022-09-02 23:46:00 字数 941 浏览 32 评论 0

不想专门为手机站设置二级域名。想通过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版模板的时候,都是怎样设计代码的呢?
简单提供下思路即可,谢谢了!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

差↓一点笑了 2022-09-09 23:46:00
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()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文