学习Flask
Demo:
https://github.com/songjian/flask-demo
参考:
- https://flask.net.cn/
- https://flask.net.cn/quickstart.html#quickstart (快速上手)
基础
- Werkzeug 用于实现 WSGI ,应用和服务之间的标准 Python 接口。
- Jinja 用于渲染页面的模板语言。
- MarkupSafe 与 Jinja 共用,在渲染页面时用于避免不可信的输入,防止注入攻击。
- ItsDangerous 保证数据完整性的安全标志数据,用于保护 Flask 的 session cookie。
- Click 是一个命令行应用的框架。用于提供 flask 命令,并允许添加自定义 管理命令。
虚拟环境
Python 3 内置了用于创建虚拟环境的 venv 模块。
建议在开发环境和生产环境下都使用虚拟环境来管理项目的依赖。
为什么要使用虚拟环境?随着你的 Python 项目越来越多,你会发现不同的项目会需要 不同的版本的 Python 库。同一个 Python 库的不同版本可能不兼容。
虚拟环境可以为每一个项目安装独立的 Python 库,这样就可以隔离不同项目之间的 Python 库,也可以隔离项目与操作系统之间的 Python 库。
Python 3 内置了用于创建虚拟环境的 venv 模块。如果你使用的是较新的 Python 版本,那么请接着阅读本文下面的内容。
如果你使用 Python 2 ,请首先参阅 安装 virtualenv 。
创建一个虚拟环境
创建一个项目文件夹,然后创建一个虚拟环境。创建完成后项目文件夹中会有一个 venv 文件夹:
$ mkdir myproject
$ cd myproject
$ python3 -m venv venv
激活虚拟环境
在开始工作前,先要激活相应的虚拟环境:
$ . venv/bin/activate
安装 Flask
在已激活的虚拟环境中可以使用如下命令安装 Flask:
$ pip install Flask
如果想要知道文件上传之前其在客户端系统中的名称,可以使用 filename 属性。但是请牢记这个值是 可以伪造的,永远不要信任这个值。如果想要把客户端的文件名作为服务器上的文件名, 可以通过 Werkzeug 提供的 secure_filename() 函数:
from flask import request
from werkzeug.utils import secure_filename@app.route('/upload',methods=['GET',' T'])
def upload_file():
if request.method=='POST':
f=request.files['the_file']
f.save('/var/www/uploads/'+secure_filename(f.filename))