Flask-Ask is a Flask extension that makes building Alexa skills for the Amazon Echo easier and much more fun.
A Flask-Ask application looks like this:
from flask import Flask
from flask_ask import Ask, statement
app = Flask(__name__)
ask = Ask(app, '/')
@ask.intent('HelloIntent')
def hello(firstname):
speech_text = "Hello %s" % firstname
return statement(speech_text).simple_card('Hello', speech_text)
if __name__ == '__main__':
app.run()
In the code above:
Ask
object is created by passing in the Flask application and a route to forward Alexa requests to.intent
decorator maps HelloIntent
to a view function hello
.firstname
slot is implicitly mapped to hello
's firstname
parameter.More code examples are in the samples directory.
Since Alexa responses are usually short phrases, you might find it convenient to put them in the same file.Flask-Ask has a Jinja template loader that loadsmultiple templates from a single YAML file. For example, here's a template that supports the minimal voice interfaceabove:
hello: Hello, {{ firstname }}
Templates are stored in a file called templates.yaml located in the application root. Checkout the Tidepooler example to see why it makes sense to extract speech out of the code and into templates as the number of spoken phrases grow.
Flask-Ask handles the boilerplate, so you can focus on writing clean code. Flask-Ask:
To install Flask-Ask:
pip install flask-ask
These resources will get you up and running quickly:
Fantastic 3-part tutorial series by Harrison Kinsley
You can deploy using any WSGI compliant framework (uWSGI, Gunicorn). If you haven't deployed a Flask app to production, checkout flask-live-starter.
To deploy on AWS Lambda, you have two options. Use Zappa to automate the deployment of an AWS Lambda function and an AWS API Gateway to provide a public facing endpoint for your Lambda function. This blog post shows how to deploy Flask-Ask with Zappa from scratch. Note: When deploying to AWS Lambda with Zappa, make sure you point the Alexa skill to the HTTPS API gateway that Zappa creates, not the Lambda function's ARN.
Alternatively, you can use AWS Lambda directly without the need for an AWS API Gateway endpoint. In this case you will need to deploy your Lambda function yourself and use virtualenv to create a deployment package that contains your Flask-Ask application along with its dependencies, which can be uploaded to Lambda. If your Lambda handler is configured as lambda_function.lambda_handler, then you would save the full application example above in a file called lambda_function.py and add the following two lines to it:
def lambda_handler(event, _context):
return ask.run_aws_lambda(event)
If you'd like to work from the Flask-Ask source, clone the project and run:
pip install -r requirements-dev.txt
This will install all base requirements from requirements.txt as well as requirements needed for running tests from the tests directory.
Tests can be run with:
python setup.py test
Or:
python -m unittest
To install from your local clone or fork of the project, run:
python setup.py install
cookiecutter-flask-ask is a Cookiecutter to easily bootstrap a Flask-Ask project, including documentation, speech assets and basic built-in intents.
Have a Google Home? Checkout Flask-Assistant (early alpha)
Thanks for checking this library out! I hope you find it useful.
Of course, there's always room for improvement.Feel free to open an issue so we can make Flask-Ask better.
Special thanks to @kennethreitz for his sense of style, and of course, @mitsuhiko for Flask
本文实例讲述了使用Flask-Cache缓存实现给Flask提速的方法。分享给大家供大家参考,具体如下: Django里面可以很方便的应用缓存,那Flask里面没准备这么周全怎么办?自己造轮子么?不用的,前人种树后人乘凉,我们有Flask-Cache,用起来和Django里面一样方便哦! 1.安装 pip install Flask-Cache 2.配置 以我的zhihu项目(源码)为例: 在co
Django里面可以很方便的应用缓存,那Flask里面没准备这么周全怎么办?自己造轮子么?不用的,前人种树后人乘凉,我们有Flask-Cache,用起来和Django里面一样方便哦! 1.安装 pip install Flask-Cache 2.配置 以我的zhihu项目(源码)为例: 在config.py里面,设置simple缓存类型,也可以用第三方的redis之类的,和Django一样,装好r
目录 前文列表 用 Flask 来写个轻博客 (1) — 创建项目 用 Flask 来写个轻博客 (2) — Hello World! 用 Flask 来写个轻博客 (3) — (M)VC_连接 MySQL 和 SQLAlchemy 用 Flask 来写个轻博客 (4) — (M)VC_创建数据模型和表 用 Flask 来写个轻博客 (5) — (M)VC_SQLAlchemy 的 CRUD 详解
Falsk 微框架 缺省情况下, Flask 不包含数据库抽象层、表单验证或者其他已有的库可以处理 的东西。然而, Flask 通过扩展为应用添加这些功能。 (自己创建文件或者目录) Flask 会一直提供一个 非常简约而优秀的胶合层,就像 Python 语言一样。你可以自由地使用 SQLAlchemy 执行高级模式,或者使用其他数据库工具,亦可引入非关系数据模型, 甚至还可以利用用于 Pytho
回顾 在前面的系列章节中,我们创建了一个数据库并且学着用用户和邮件来填充,但是到现在我们还没能够植入到我们的程序中。 两章之前,我们已经看到怎么去创建网络表单并且留下了一个实现完全的登陆表单。 在这篇文章中,我们将基于我门所学的网络表单和数据库来构建并实现我们自己的用户登录系统。教程的最后我们小程序会实现新用户注册,登陆和退出的功能。 为了能跟上这章节,你需要前一章节最后部分,我们留下的微博程序。
flask 内核精简非常适合一些简单服务器架设,今天突然想起整理下上传下载方法做个笔记 ,原则就俩字简单能用即可,其他一概不考虑。 1、上传: 采用两个路由和一个提交页面配合 upload.html 文件 <html> <head> <title>File Upload</title> </head> <body> <form action="/uploader" method="PO
1、Flask-Migrate介绍 flask-migrate可以十分方便的进行数据库的迁移与映射,将我们修改过的ORM模型映射到数据库中。flask-migrate是基于Alembic进行的一个封装,并集成到Flask中,所有的迁移操作其实都是Alembic做的,他能跟踪模型的变化,并将变化映射到数据库中。 pip install flask-migrate 2、Flask-Migrate使用 在
1、Flask-Script介绍 Flask-Script的作用是可以通过命令行的形式来操作Flask。 Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任务;使得脚本和系统分开; pip install flask-script 安装 2、Fla
问题内容: 在官方的快速入门中,建议在使用单个 模块 时使用: 2. …如果您使用的是单个模块(如本例所示),则应使用,因为取决于它是作为应用程序启动还是作为模块导入,其名称将有所不同(与实际导入名称不同)。… 但是,在他们的API文档中,当我的应用程序为 软件包 时,建议进行硬编码: 因此,您在此处提供的内容很重要。如果使用单个模块,则始终为正确的值。但是,如果您使用的是包,通常建议在其中硬编码
在前面,我们介绍了 REST Web 服务,并使用 Flask 提供服务。这里,我们使用第三方库 Flask-RESTful,它使得在 Flask 中提供 REST 服务变得更加简单。 安装 使用 pip 安装: $ pip install flask-restful 使用 下面我们主要使用官方文档的例子进行说明。 Hello World 我们先来看一个简单的例子。 # -*- coding: u
Bootstrap 是 Twitter 开源的一个 CSS/HTML 框架,它让 Web 开发变得更加迅速,简单。要想在我们的 Flask 应用中使用 Boostrap,有两种方案可供选择: 第 1 种,在我们的 Jinja 模板中直接引入 Bootstrap 层叠样式表 (CSS) 和 JavaScript 文件,比如 bootstrap.min.css,bootstrap.min.js; 第
在 Web 应用中,我们经常需要保护我们的 api,以避免非法访问。比如,只允许登录成功的用户发表评论等。Flask-HTTPAuth 扩展可以很好地对 HTTP 的请求进行认证,不依赖于 Cookie 和 Session。本文主要介绍两种认证的方式:基于密码和基于令牌 (token)。 安装 使用 pip 安装: $ pip install Flask-HTTPAuth 基于密码的认证 为了简化
假设你的 Web 服务对于某些请求比较耗时,而该请求的返回结果在较短的时间内(比如 5 分钟内)都是足够有效的,这时你能想到什么方法去改善这种状况呢?缓存?对,至少这是一种提高性能的最简单的方法。 Flask 本身不提供缓存功能,但是作为 Flask 核心的 Werkzeug 框架则提供了一个简单的缓存对象 SimpleCache,它将缓存项存放在 Python 解释器的内存中。使用 Simple
MongoDB 是一个文档型数据库,是 NoSQL (not only SQL) 的一种,具有灵活、易扩展等诸多优点,受到许多开发者的青睐。MongoEngine 是一个用来操作 MongoDB 的 ORM 框架,如果你不知道什么是 ORM,可以参考 Flask-SQLAlchemy 一节。在 Flask 中,我们可以直接使用 MongoEngine,也可使用 Flask-MongoEngine
ORM 框架 Web 开发中,一个重要的组成部分便是数据库了。Web 程序中最常用的莫过于关系型数据库了,也称 SQL 数据库。另外,文档数据库(如 mongodb)、键值对数据库(如 redis)近几年也逐渐在 web 开发中流行起来,我们习惯把这两种数据库称为 NoSQL 数据库。 大多数的关系型数据库引擎(比如 MySQL、Postgres 和 SQLite)都有对应的 Python 包。在
给用户发送邮件是 Web 应用中最常见的任务之一,比如用户注册,找回密码等。Python 内置了一个 smtplib 的模块,可以用来发送邮件,这里我们使用 Flask-Mail,是因为它可以和 Flask 集成,让我们更方便地实现此功能。 安装 使用pip安装: $ pip install Flask-Mail 或下载源码安装: $ git clone https://github.com/ma