学习Python的后端框架Flask。
Flask HTTP方法
- GET 以未加密的形式将数据发送到服务器
- HEAD 和GET方法相同,但没有响应体
- POST 用于将HTML表单数据发送到服务器。POST方法接收的数据不由服务器缓存
- PUT 用上传的内容替换目标资源的所有当前表示
- DELETE 删除由URL给出的目标资源的所有当前表示
默认情况下,Flask路由响应GET请求,但是可以通过route()装饰器提供方法参数来更改此首选项
1 |
Flask Request对象
1 | from flask import Flask, request |
Cookies和Session
- Cookies是储存在客户端的临时数据,Session是储存在服务器上的临时数据、
Flask重定向和错误
1 | Flask.redirect(location,statuscode,response) |
1 | Flask.abort(code) |
Flask文件上传
-
Flask中处理文件上传需要一个HTML表单,其
enctype
属性设置为multipart / form-data
,将文件发布到URL。URL处理程序从request.files[]
对象中提取文件,并将其保存到所需的位置。 -
每个上传的文件首先会保存在服务器上的临时位置,然后将其实际保存到它的最终位置。目标文件的名称可以是硬编码的,也可以从
request.files[file]
对象的filename
属性中获取。但是,建议用secure_filename()
函数获取它的安全版本。 -
可以在Flask对象的配置设置中定义默认上传文件夹的路径和上传文件的最大大小。
1
2app.config['UPLOAD_FOLDER'] #定义上传文件夹的路径
app.config['MAX_CONTENT_LENGTH'] #指定要上传的文件的最大大小(以字节为单位)
Flask扩展
几个重要的Flask扩展:
- Flask Mail - 为Flask应用程序提供SMTP接口
- Flask WTF - 添加WTForms的渲染和验证
- Flask SQLAlchemy - 为Flask应用程序添加SQLAlchemy支持
- Flask Sijax - Sijax的接口 - Python/jQuery库,使AJAX易于在Web应用程序中使用
由于扩展是一个Python模块,因此需要导入它才能使用它。Flask扩展名通常命名为flask-foo。导入操作如下:
1 | from flask_foo import [class, function] |
对于0.7以后的Flask版本,还可以使用语法:
1 | from flask.ext import foo |
Flask寻找扩展
http://flask.pocoo.org/extensions/
可以通过easy_install或pip下载
Flask SQLAlchemy
- 在Flask Web应用程序中使用原始SQL对数据库执行CRUD操作可能很繁琐。相反, SQLAlchemy ,Python工具包是一个强大的OR Mapper,它为应用程序开发人员提供了SQL的全部功能和灵活性。Flask-SQLAlchemy是Flask扩展,它将对SQLAlchemy的支持添加到Flask应用程序中。
1 | 第一步:安装扩展 |