对于添加的操作接口,需要的传递参数如下:
id自动生成,无需传递
参数名 | 参数说明 | 备注 |
---|---|---|
cid | 分类ID | 不能为空 |
name | 参数说明 | 不能为空 |
_type | [static, dynamic] | 不能为空 |
val | 静态:单值 动态:该值以逗号隔开 | 可选参数 |
创建蓝图对象的方式可以查看之前的文章,这里就不过多讲啦
flask框架使用蓝图与restful发送请求添加数据
本次就不再单独创建文件夹,就写在原先的category中
# flask_shop/category/__init__.py
# user用于管理用户的蓝图
from flask import Blueprint
# 注册flask_restful路由
from flask_restful import Api
# 创建蓝图,记得要注册
#定义好传递给的变量 蓝图对象名称 前缀名
category = Blueprint('category', __name__)
# 注册flask_restful路由
category_api = Api(category)
attribute = Blueprint('attribute', __name__, url_prefix='/category')
attribute_api = Api(attribute)
from flask_shop.category import view
添加如下代码
# flask_shop/category/view.py
from flask_shop.category import category,category_api, attribute, attribute_api
注册蓝图
#flask_shop/__init__.py
# 用于初始化app对象
from flask import Flask
# 导入数据库
from flask_sqlalchemy import SQLAlchemy
# 获取是哪种开发模式
from config import config_map
# 先不连接app对象,否则报错,在下面创建app对象时默认连接数据库,就可以了
db = SQLAlchemy()
def create_app(config_name):
app = Flask(__name__)
# 获取到字典中的哪种类,获取到对应的类名,再给到from_object获取到对应的参数
obj = config_map.get(config_name)
# 加载数据库到Flask中
app.config.from_object(obj)
# 默认连接数据库
db.init_app(app)
# 注册用户的蓝图
from flask_shop.category import attribute
app.register_blueprint(attribute)
return app
创建函数接口
# flask_shop/category/view.py
from flask import request
from flask_shop.category import category,category_api, attribute, attribute_api
from flask_shop import models,db
from flask_restful import Resource
from flask_shop.utils.message import to_dict_msg
# attribute表
# restful形式发送请求
class Attribute(Resource):
# 增加数据
def post(self):
name = request.form.get('name')
cid = request.form.get('cid')
_type = request.form.get('_type')
val = request.form.get('val')
if all([name, cid, _type]):
if val:
attr = models.Attribute(name=name, cid=int(cid), _type=_type, val=val)
else:
attr = models.Attribute(name=name, cid=int(cid), _type=_type)
db.session.add(attr)
db.session.commit()
return to_dict_msg(200,msg="添加商品分类数据成功!!!!")
else:
return to_dict_msg(10000)
attribute_api.add_resource(Attribute, '/attribute')