Skip to content

Instantly share code, notes, and snippets.

@nguyenkims
Last active January 20, 2016 08:46
Show Gist options
  • Save nguyenkims/f232a18c9f762e9059b0 to your computer and use it in GitHub Desktop.
Save nguyenkims/f232a18c9f762e9059b0 to your computer and use it in GitHub Desktop.
Multiple database foreign key with Flask-SQLAchemy
import os
import flask
from flask import Flask
from flask.ext.cors import CORS
from flask.ext.sqlalchemy import SQLAlchemy
basedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'main.db')
SQLALCHEMY_BINDS = {
'otherDB': 'sqlite:///' + os.path.join(basedir, 'other.db')
}
app.config.from_object(__name__)
db = SQLAlchemy(app)
class User(db.Model):
__bind_key__ = 'otherDB'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
class Car(db.Model):
__bind_key__ = 'otherDB'
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey(User.id))
car_name = db.Column(db.String)
user = db.relationship(User)
db.create_all()
@app.route('/create')
def create_user():
user = User(name="meo")
car = Car(user=user, car_name="Ferrari")
db.session.add(user)
db.session.add(car)
db.session.commit()
return "success"
@app.route('/get_car')
def get_car():
cars = Car.query.all()
res = []
for car in cars:
res.append({
"car_id": car.id,
"user_name": car.user.name
})
return flask.jsonify({"data": res})
app.run(debug=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment