首页投稿(暂停使用,暂停投稿)

Flask-FlatPages中文文档

2016-11-26  本文已影响495人  森与渊

Flask-FlatPages

Flask-FlatPages为Flask应用提供一组页面。页面是由一些“平滑的”文本文件而非关系数据库构建。

安装

使用pip安装扩展:

$ pip install Flask-FlatPages

或者从Github上获取源码。

配置

开始使用,仅需要在配置好Flask application后,实例化一个FlatPages对象:

from flask import Flask
from flask_flatpages import FlatPages

app = Flask(__name__)
app.config.from_pyfile('mysettings.cfg')
pages = FlatPages(app)

你也可以通过init_app(),迟点传递Flask application:

pages = FlatPages()

def create_app(config='mysettings.cfg'): 
  app = Flask(__name__) 
  app.config.from_pyfile(config) 
  pages.init_app(app) 
  return app

Flask-FlatPages可接受下列配置值。所有值都是可选的:



API

FlatPages
classflask_flatpages.FlatPages(*app=None*,*name=None*)

一组页面对象。
使用示例:

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)
__iter__()

迭代所有的页面对象。

get(path,default=None)

返回指定地址的页面,若无则返回默认页面

get_or_404(path)

返回指定地址的页面,若无则抛出Flask的404错误。

init_app(app)

用于初始化应用,有助于延后传递app和app工厂模式。
参数:app(一个Flask实例)——你的应用

reload()

忘掉所有页面。
所有页面将在其下一次访问是重载。

Page
classflask_flatpages.Page

一个简单的类,用来存储flatpages所有必要的信息。

主要目的是用html_renderer函数来渲染页面内容。

使用先前定义的hello.html:

# hello.html
title: Hello
published: 2010-12-22

Hello, *World*!

Lorem ipsum dolor sit amet, …
>>> page = pages.get('hello')
>>> page.meta # PyYAML converts YYYY-MM-DD to a date object
{'title': u'Hello', 'published': datetime.date(2010, 12, 22)}
>>> page['title']u'Hello'
>>> page.bodyu'Hello, *World*!\n\nLorem ipsum dolor sit amet, \u2026'
>>> page.html
u'<p>Hello, <em>World</em>!</p>\n<p>Lorem ipsum dolor sit amet, \u2026</p>'
__getitem__(name)

快捷访问元数据。
page['title'] 或者在模板内,{{ page.title }},等价于 page.meta['title']

__html__()

模板内,{{ page }} 等价于 {{ page.html|safe }} 。

html

页面内容,使用配置好的渲染器渲染为HTML。

html_renderer = None

渲染函数

meta

文件头的元数据字典解析为YAML。

path = None

页面的路径,获取于pages.get(path)


flask_flatpages.pygmented_markdown(text,flatpages=None)

渲染Markdown文档为HTML。
只要Pygments可用,就使用CodeHilite扩展。否则,删掉扩展列表里的“codehilite”。
如果你想用其他扩展,使用FLATPAGES_MARKDOWN_EXTENSIONS,设置其字符串序列。


flask_flatpages.pygments_style_defs(style='default')

返回值:CodeHiliteMarkdown插件定义的CSS。
参数:sytle——使用的Pygment风格。
仅当Pygments可用时。

更新日志

Version 0.6

Released on 2015-02-09

Version 0.5

Released on 2013-04-02

Version 0.4

Released on 2013-04-01

Version 0.3

Released on 2012-07-03

Version 0.2

Released on 2011-06-02
Bugfix and cosmetic release. Tests are now installed alongside the code.

Version 0.1

Released on 2011-02-06.
First public release.

上一篇 下一篇

猜你喜欢

热点阅读