from flask import Flask, request, render_template from models import db, ModelForm, BondDeal, Counterparties app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://dawn_user@debian/dawndb' app.config['SECRET_KEY'] = 'papa' app.config['UPLOAD_FOLDER'] = 'tickets' def list_counterparties(): return Counterparties.query.order_by('name').\ with_entities(Counterparties.code, Counterparties.name) # Base.metadata.create_all(engine) class BondForm(ModelForm): class Meta: model = BondDeal include_foreign_keys = True exclude = ['dealid'] #we generate it with a trigger at the server level @app.route('/', methods=['GET', 'POST']) def trade_entry(): bond_form = BondForm() bond_form.counterparty.choices = list_counterparties() if bond_form.is_submitted(): if bond_form.validate(): bond = BondDeal() bond_form.populate_obj(bond) bond.ticket.save('test.pdf') bond.ticket='test.pdf' bond_form.get_session().add(bond) bond_form.get_session().commit() return "Success!" else: print(bond_form.errors) return render_template("trade_entry.html", form=bond_form) @app.route('/trade/', methods=['GET', 'POST']) def trade_update(tradeid): bond_form = BondForm(obj = BondDeal().query.get(tradeid)) bond_form.counterparty.choices = list_counterparties() return render_template("trade_entry.html", form=bond_form) if __name__=="__main__": #db.drop_all(app=app) #db.create_all(app=app) db.init_app(app) app.run(debug=True)