- 蓝图:存储视图方法的容器,这些操作在这个Blueprint 被注册到一个应用之后就可以被调用,Flask 可以通过Blueprint来组织URL以及处理请求。
使用蓝图的4个步骤
a.创建一个蓝图的包,例如users,并在__init__.py文件中创建蓝图对象
users=Blueprint('users',__name__)
b.在这个蓝图目录下, 创建views.py文件,保存当前蓝图使用的视图函数
@admin.route('/')
def home():
return 'user.home'
c.在users/init.py中引入views.py中所有的视图函数
from flask import Blueprint
# 等同于原来在 manage.py里面的 app = Flask()
users=Blueprint('users',__name__)
from .views import *
d.在主应用main.py文件中的app对象上注册这个users蓝图对象
from users import users
app.register_blueprint(users,url_prefix='/users')
Demo1
import sys,os
from flask import *
from werkzeug.utils import secure_filename
from dataTestSys import log, const
blueprint = Blueprint('common', __name__)
# 文件上传
@blueprint.route('/api/upload', methods=['GET', 'POST'])
def upload():
if request.method == 'POST':
f = request.files['file'] # 获取上传的文件
basepath = os.path.dirname(__file__) # 获取脚本的路径(到本脚本的上一层)
upload_path = os.path.join(basepath, 'uploads', secure_filename(f.filename)) # 路径拼接
f.save(upload_path)
return (jsonify({'errno': 10000, 'error': '比对成功', 'data': {}}))
secure_filename(f.filename):
secure_filename不能获取中文名的解决办法
- flask中的jsonify可以将dict转为json响应数据,还可以直接往里面写参数值。
- 在json模块有如下方法,
loads():将json数据转化成dict数据
dumps():将dict数据转化成json数据
load():读取json文件数据,转成dict数据
dump():将dict数据转化成json数据后写入json文件 - 跨域
跨域