当前位置:Gxlcms > 数据库问题 > Flask数据库关系

Flask数据库关系

时间:2021-07-01 10:21:17 帮助过:9人阅读

基础配置

  1. <code>from flask import Flask
  2. from flask_sqlalchemy import SQLAlchemy
  3. app = Flask(__name__)
  4. db = SQLAlchemy(app)
  5. app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:root@localhost/flask'</code>

一对多

  1. <code>class Singer(db.Model):
  2. id = db.Column(db.Integer, primary_key=True)
  3. name = db.Column(db.String(70), unique=True)
  4. songs = db.relationship('Song', backref='singer')
  5. class Song(db.Model):
  6. id = db.Column(db.Integer, primary_key=True)
  7. name = db.Column(db.String(70), unique=True)
  8. singer_id = db.Column(db.Integer, db.ForeignKey('singer.id'))</code>

多对一(不是必须时还是用与一对多吧)

比一对多的用法,会少一个从一里访问多的字段。

  1. <code>class Citizen(db.Model):
  2. id = db.Column(db.Integer, primary_key=True)
  3. name = db.Column(db.String(70), unique=True)
  4. city_id = db.Column(db.Integer, db.ForeignKey('city.id'))
  5. city = db.relationship('City')
  6. class Country(db.Model):
  7. id = db.Column(db.Integer, primary_key=True)
  8. name = db.Column(db.String(79), unique=True)
  9. capital = db.relationship('Capital', uselist=False)</code>

一对一

  1. <code>class Country(db.Model):
  2. id = db.Column(db.Integer, primary_key=True)
  3. name = db.Column(db.String(79), unique=True)
  4. capital = db.relationship('Capital', uselist=False)
  5. class Capital(db.Model):
  6. id = db.Column(db.Integer, primary_key=True)
  7. name = db.Column(db.String(70), unique=True)
  8. country_id = db.Column(db.Integer, db.ForeignKey('country.id'))
  9. country = db.relationship('Country'</code>

多对多

  1. <code>association_table = db.Table(
  2. 'association',
  3. db.Column('student_id', db.Integer, db.ForeignKey('student.id')),
  4. db.Column('teacher_id', db.Integer, db.ForeignKey('teacher.id'))
  5. )
  6. class Student(db.Model):
  7. id = db.Column(db.Integer, primary_key=True)
  8. name = db.Column(db.String(70), unique=True)
  9. grade = db.Column(db.String(20))
  10. teachers = db.relationship(
  11. 'Teacher', secondary=association_table, backref='students')
  12. class Teacher(db.Model):
  13. id = db.Column(db.Integer, primary_key=True)
  14. name = db.Column(db.String(70), unique=True)
  15. office = db.Column(db.String(20))</code>

Flask数据库关系

标签:int   key   foreign   iat   table   ons   ati   back   teacher   

人气教程排行