更多Flask
阅读指南:
Flask基础学习
- 使用virtualenv实现python的虚拟环境
- Python Flask 入门开发
- Python Flask框架配置管理加载的三种方式
- Python Flask 路由配置
- Python Flask静态文件配置
- Python Flask模板渲染
- Python Flask 蓝图Blueprint
- Flask 使用Context上下文
- Flask中SQLAlchemy的使用
Flask 扩展
- 使用flask-script实现Flask项目定制shell功能
- Flask 中使用flask-admin实现数据模型绑定视图
- Flask 中使用mysql数据库
- Flask使用flask-migrate实现数据库迁移
Flask 进阶
蓝图(Blueprint
)是Flask
实现的应用模块化,通过模块化的方式分割视图,让应用的层次更加清晰,更加便于开发者开发和维护项目。通过蓝图,我们可以创建一组相同前缀的路由组合,可以用于分割应用不同的服务。如应用有两个服务:认证服务和用户服务,我们可以通过模块化分割服务,然后通过Flask
注册不同前缀的蓝图。
创建main服务
先创建一个main
服务,代码如下:
1、创建main.py
文件
# main.py
# !/usr/bin/env python
# -*-coding:utf-8 -*-
from datetime import datetime
from flask import render_template,session,redirect,url_for,abort,request,Blueprint
main = Blueprint('main', __name__)
@main.route('/index')
def index(item_name="dashboard", **kwargs):
return render_template('manager/index.html', item_name=item_name, kwargs=kwargs)
@main.route('/user/<username>')
def user(username):
return render_template('user.html', user=user)
2、创建api.py
文件
# !/usr/bin/env python
# -*-coding:utf-8 -*-
from flask import jsonify, request,make_response,Blueprint,Flask
from. import api
@api.route('/post/', methods=['POST'])
def post():
json = request.json
print(str(json))
post1 = Post.from_json(json)
db.session.add(post1)
db.session.commit()
return jsonify({
"status": 1,
"response": u"提交成功"
})
3、注册Blueprint
# !/usr/bin/env python
# -*-coding:utf-8 -*-
from flask import Flask,render_template,Response
from flask_cors import CORS
def create_app(config_name):
app = Flask(__name__)
# 注册main服务
from .main import main as main_blueprint
app.register_blueprint(main_blueprint, url_prefix='/manager')
# 注册api服务
from app.api import api as api_blueprint
CORS(api_blueprint, supports_credentials=True)
app.register_blueprint(api_blueprint, url_prefix='/api/v1.0')
return app