【发布时间】:2014-11-26 18:12:05
【问题描述】:
我是 python 新手,我正在尝试使用 Flask 框架制作网站。
我正在使用Flask-FlatPages 扩展名来呈现来自特定目录的markdown 文件,并且我想对页面进行分页。为了防止长页面和无限滚动,我想剪切页面并将每个页面呈现在多个页面上。我在想一个简单的方法可能是剪切像<h2>这样的html标签。
我不确定我是否足够清楚,主要思想是一种多部分文章或系列文章。
我只找到了有关使用数据库和分页查询结果的答案。
我不知道这是否应该在 python/flask 或 jinja 模板中完成。
编辑:
正如我在此处的评论中提到的,我正在使用它来渲染我的 .md 文件:
pages = FlatPages(app)
@app.route('/')
def index():
# Articles are pages with a publication date
articles = (p for p in pages if 'published' in p.meta)
# Show the 10 most recent articles, most recent first.
latest = sorted(articles, reverse=True,
key=lambda p: p.meta['published'])
return render_template('articles.html', articles=latest[:10])
@app.route('/<path:path>/')
def page(path):
page = pages.get_or_404(path)
template = page.meta.get('template', 'flatpage.html')
return render_template(template, page=page)
我认为我需要修改这条路线(或平面模板),以分页page。
【问题讨论】:
-
您是要对文章列表(单独的
.md文件)进行分页还是对单个文章/.md文件进行分页? -
这将是每个
.md文件。想想一个很长的教程(我所有的.md文件都是),我想把它们展示出来。 -
您希望它们在服务器上进行分页,还是在客户端进行分页? (换句话说,您是需要为每个部分单独加载页面,还是只是想要更小的感知页面大小?)
-
我认为它可以在客户端(我已经查看了一些 js 库,但到目前为止还没有运气)。这是我需要更小的感知页面大小,在屏幕上将页面分成更小的部分。这看起来像是网站内的演示文稿。
标签: flask jinja2 flask-flatpages