@app.route(’/’, methods=[‘GET’, ‘POST’]) def index(): if request.method == ‘POST’: # 1、获取用户输入的数据 big_name = request.form.get(‘big’) small_name = request.form.get(‘small’) goods_name = request.form.get(‘good’)
# 2、判断大类是否存在 big = BigCategory.query.filter(BigCategory.name == big_name).first() if big: # 大类存在 # 3、判断小类是否存在 if small_name in [s.name for s in big.small_list]: # 如果小类存在。在小类下 添加商品 s = SmallCategory.query.filter(SmallCategory.name == small_name).first() g = Goods(name=goods_name) s.goods_list.append(g) db.session.commit() flash('大类、小类都存在。添加商品成功') else: # 如果小类不存在。 在大类下,添加小类(商品) s = SmallCategory(name=small_name) g = Goods(name=goods_name) # 确立三者关系 big.small_list.append(s) s.goods_list.append(g) db.session.commit() flash('大类存在,小类不存在。处理成功') else: # 不存在,将三个数据,都写入到数据库 b = BigCategory(name=big_name) s = SmallCategory(name=small_name) g = Goods(name=goods_name) # 维护三者关系 b.small_list.append(s) s.goods_list.append(g) db.session.add(b) db.session.commit() flash('大类不存在处理成功') # 4、生成实例。写入数据库 d = {} big_list = BigCategory.query.filter() d['big_list'] = big_list # 返回response return render_template('index.html', data=d)if name == ‘main’: # db.drop_all() # db.create_all() app.run(debug=True)