使用Flask快速搭建前端
2016-11-01 10:33
232 查看
使用Flask快速搭建前端
Flask介绍
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2。Flask也被成为『微框架』。因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。
它的官方地址:http://flask.pocoo.org
简单的Hello world
在一个python文件hello.py中键入以下代码:from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()
执行命令
python hello.py
运行结果
在浏览器访问 http://127.0.0.1:5000
显示如下
more
路由配置
flask的路由是由route()装饰器把一个函数绑定到一个URL实现的。下面是一些基本的例子:
@app.route('/') def index(): return 'Index Page' @app.route('/hello') def hello(): return 'Hello World'
当然一个web框架的路由肯定不可能只做到这些简单固定的路由,flask自己可以定义一些规则。
变量规则
通过把 URL 的一部分标记为 就可以在 URL 中添加变量。标记的 部分会作为关键字参数传递给函数。通过使用 ,可以 选择性的加上一个转换器,为变量指定规则。请看下面的例子:@app.route('/user/<username>') def show_user_profile(username): # show the user profile for that user return 'User %s' % username @app.route('/post/<int:post_id>') def show_post(post_id): # show the post with the given id, the id is an integer return 'Post %d' % post_id
现有的转换器有:
int | float | path |
---|---|---|
接受整数 | 接受浮点数 | 和缺省情况相同,但也接受斜杠 |
渲染模板
在Python内部生成HTML不好玩,且相当笨拙。因为你必须自己负责HTML转义,以确保应用的安全。因此, Flask自动为你配置的 Jinja2 模板引擎,就像Java语言里最简单的模板JSP一样。Flask使用render_template()方法渲染模板,我们要做的只要提供模板名称和需要的参数或者说变量就行了。
举个栗子:
from flask import render_template @app.route('/hello/') @app.route('/hello/<name>') def hello(name=None): return render_template('hello.html', name=name)
Flask一般会在templates文件夹内寻找名称对应的模板文件。
接下来就要看看Jinja2模板的威力了,就像使用Java语言或者PHP里的html模板标签语言。
举个简单使用Jinja2模板的栗子:(hello.html)
<!doctype html> <title>Hello from Flask</title> {% if name %} <h1>Hello {{ name }}!</h1> {% else %} <h1>Hello World!</h1> {% endif %}
是不是很像PHP?哈哈,以前用过PHP或者JSTL的,这模板已经是简单得不能再简单。
在模板内部你也可以访问 request 、session 和 g 对象,以及 get_flashed_messages() 函数。
这几个对象和函数都可以在官方API文档中查找得到,这里不细说。
总结
Flask真的是一个超快速开发web的框架,配合bootstrap使用快到没朋友。Flask官方文档中的quick start已经能覆盖到我的功能需求,非常容易学。我经常用它来做一些数据项目的前端展示或者一些数据检索展示,但如果要做一个大型网站的话,这个框架恐怕不太适合,目前我还没看到它的一些关于并发的支持。做大型网站我还是会选择传统的Java语言,因为比较容易找到人手。相关文章推荐
- 使用Express快速搭建前端项目框架
- 使用appfuse2.0快速搭建环境(myeclipse)1
- 1 使用InstantRails快速搭建Ruby On Rails开发环境
- filezilla快速搭建FTP服务器和客户端使用教程
- [PHP]使用CodeIgniter快速搭建博客框架
- 快速使用 Thinkphp 之三: 用easyUI搭建Rbac界面
- Ruby on rails开发从头来(windows)(一)-使用InstantRails快速搭建Ruby On Rails开发环境
- 五步教你使用JCS快速搭建缓存环境
- Window平台使用VS2010简单快速搭建QT开发环境
- 使用ThinkPHP框架快速搭建网站【转】
- 使用Flask快速开发WEB应用-第二篇:Blueprint模块的应用
- rsync服务器的快速搭建和使用
- 使用MapGuide Open Source2.1 & Maestro快速搭建一个基本的WebGIS
- 使用appfuse2.0快速搭建环境(myeclipse)
- centos5系统使用yum快速搭建lamp环境(转)
- 使用appfuse2.0快速搭建环境(myeclipse)
- 使用wordpress在appache php mysql环境下快速搭建个人博客!!!
- webservice快速入门-使用JAX-WS注解的方式快速搭建ws服务端和客户端(一)
- 五步教你使用JCS快速搭建缓存环境