源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Flask入门教程实例:搭建一个静态博客

  • 时间:2021-01-25 01:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Flask入门教程实例:搭建一个静态博客
现在流行的静态博客/网站生成工具有很多,比如 Jekyll, Pelican, Middleman, Hyde 等等,StaticGen 列出了目前最流行的一些静态网站生成工具。 我们的内部工具由 Python/Flask/MongoDB 搭建,现在需要加上文档功能,写作格式是 Markdown,不想把文档放到数据库里,也不想再弄一套静态博客工具来管理文档,于是找到了 Flask-FlatPages 这个好用的 Flask 模块。熟悉 Flask 的同学花几分钟的时间就可以用搭建一个简单博客,加上 Bootstrap 的帮助,不到一小时内就可以用 Flask-Flatpages 弄个像模像样的网站出来。 [b]创建开发环境[/b] 首先我们需要 pip,在 Mac 上最简单的安装办法是:
[url={{ url_for(]     {% block content %}     {% endblock content %} </body> </html>
代码里 extends “base.html” 的意思是从 base.html 里继承基本的 “骨架”。
[u]复制代码[/u] 代码如下:
$ vi app/templates/page.html {% extends "base.html" %} {% block content %}     <h2>{{ page.title }}</h2>     {{ page.html|safe }} {% endblock content %}
Flask-FlatPages 模块会默认从 pages 目录里寻找 .md 结尾的 Markdown 文档,所以我们把静态博客的内容都放在这个目录里:
[u]复制代码[/u] 代码如下:
$ vi app/pages/hello-world.md title: Hello World date: 2014-10-14 tags: [general, blog] **Hello World**! $ vi app/pages/test-flatpages.md title: Test Flask FlatPages date: 2014-10-15 tags: [python, flask] Test [Flask-FlatPages](https://pythonhosted.org/Flask-FlatPages/)
[b]运行[/b] 基本搞定,运行看看效果吧:
[u]复制代码[/u] 代码如下:
$ flask/bin/python app/blog.py  * Running on http://127.0.0.1:8000/  * Restarting with reloader
[img]http://files.jb51.net/file_images/article/201503/2015327102523650.png?201522710276[/img] [b]静态化[/b] 到目前为止,上面的博客运行良好,但是有个问题,这个博客还不是 “静态” 的,没有生成任何 html 文件,不能直接放到 nginx/apache 这样的 web 服务器下用。所以我们需要另一个 Flask 模块 Frozen-Flask 的帮助。 安装 Frozen-Flask:
[u]复制代码[/u] 代码如下:
$ flask/bin/pip install frozen-flask
修改 blog.py,导入 Flask-Frozen 模块,初始化 Freezer,使用 freezer.freeze() 生成静态 HTML:
[u]复制代码[/u] 代码如下:
$ vi app/blog.py ... from flask_flatpages import FlatPages from flask_frozen import Freezer import sys ... flatpages = FlatPages(app) freezer = Freezer(app) ... if __name__ == '__main__':     if len(sys.argv) > 1 and sys.argv[1] == "build":         freezer.freeze()     else:         app.run(port=8000)
运行 blog.py build 后就在 app 目录下生成 build 目录,build 目录里面就是我们要的 HTML 静态文件:
[u]复制代码[/u] 代码如下:
$ flask/bin/python app/blog.py build $ ls app/ blog.py   build     pages     static    templates
更清晰的目录结构如下:
[u]复制代码[/u] 代码如下:
$ tree app app ├── blog.py ├── build │   ├── index.html │   └── pages │       ├── hello-world │       │   └── index.html │       └── test-flatpages │           └── index.html ├── pages │   ├── hello-world.md │   └── test-flatpages.md ├── static └── templates     ├── base.html     ├── index.html     └── page.html
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部