python - Flask SQL Alchemy getting the data from user interface to database with relationship -


i'm new flask , sql alchemy , i'm having difficulties setting relationships among data entered database through simple web input forms.

  • background

right now, testing purpose, have 3 tables (classes) named family, individual , sample. 1 family can have multiple individuals, 1 individual can have multiple samples , new sample entry created every new entry of whatever (family, individual , sample). i've created one-to many relationship between family , individual, individual , sample. web ui have 3 input form family name, individual name , sample name.

  • problem

so problem i'm having that, i'm not sure how should approach problem when trying set relationship between family individual , individual sample.

so if assume family last name 'jones'(son) exists in database, if 'jones' mom come in web ui, 'jones' mom automatically bound family_name 'jones'.

  • what have done

-- test_models

 app import db    class family(db.model):      family_id = db.column(db.integer, primary_key=true, autoincrement=true, index=true)    family_name = db.column(db.string(40), nullable=false, index=true, unique=false)    family_relationship = db.column(db.string(40), nullable=true)    individuals = db.relationship('individual', backref='family', lazy='dynamic')     def __init__(self, family_name,family_relationship):       self.family_name = family_name       self.family_relationship = family_relationship     def __repr__(self):       return "<family %s %s>" % (self.family_name, self.family_relationship)   class individual(db.model):     individual_id = db.column(db.integer, primary_key=true, autoincrement=true, index=true)    individual_name = db.column(db.string(40), nullable=false, index=true, unique=false)    fk_family_id = db.column(db.integer, db.foreignkey('family.family_id'))    samples = db.relationship('sample', backref='individual', lazy='dynamic')     def __init__(self, individual_name):        self.individual_name = individual_name     def __repr__(self):        return "<individual %r>" % self.individual_name   class sample(db.model):     sample_id = db.column(db.integer, primary_key=true, autoincrement=true, index=true)    sample_name = db.column(db.string(40), nullable=false, index=true, unique=false)    fk_individual_id = db.column(db.integer, db.foreignkey('individual.individual_id'))     def __init__(self, sample_name):        self.sample_name = sample_name     def __repr__(self):        return "<sample %r>" % self.sample_name 

--app

  flask import flask   flask_sqlalchemy import sqlalchemy   flask import render_template, request, redirect, url_for    app=flask(__name__)    app.config['sqlalchemy_track_modifications'] = true   app.config['sqlalchemy_database_uri'] = 'mysql+pymysql://root:xxx'    db = sqlalchemy(app)     app.models.test_models import family, individual, sample    @app.route('/')   def index():   return render_template('add_user.html')    @app.route('/post_user', methods=['post','get'])   def post_user():       family = family(request.form['family_name'], request.form['family_relationship'])      individual = individual(request.form['individual_name'])      sample = sample(request.form['sample_name'])      db.session.add(family)      db.session.add(individual)      db.session.add(sample)      db.session.flush()      db.session.commit()      return redirect(url_for('index'))     if __name__ == '__main__':     app.run(debug=true, threaded=true) 


Comments

Popular posts from this blog

sql server - Cannot query correctly (MSSQL - PHP - JSON) -

php - trouble displaying mysqli database results in correct order -

C++ Linked List -