简体   繁体   English

flask-sqlalchemy 中的多重关系

[英]multiple relationships in flask-sqlalchemy

hi i am trying to create a flask app using flask-sqlalchemy as the database(from tech with tim tutorials).嗨,我正在尝试使用 flask-sqlalchemy 作为数据库(来自 tim 教程的技术)创建一个 flask 应用程序。 There are two classes notes and users each user can have a single note and the code for it is given below this works perfectly fine but when i tried to create a contacts class such that each user can have contacts log(a part of the app that i am building).It is returning a NO FOREIGN KEYS ERROR.How to go aobut fixing this problem??有两个类注释和用户,每个用户可以有一个注释,下面给出它的代码这工作得很好但是当我尝试创建一个联系人 class 以便每个用户都可以有联系人日志(应用程序的一部分我正在建设)。它返回一个没有外键错误。如何 go aobut 解决这个问题?

code

    from . import db
    from flask_login import UserMixin
    from sqlalchemy.sql import func

    #child class

     class Contact(db.Model):
         id = db.Column(db.Integer, primary_key=True)
         city=db.Column(db.String(10000))
         addr=db.Column(db.String(10000))
         contacts_id=db.Column(db.Integer,db.ForeignKey('contacts.id'))

     class Note(db.Model):
         id = db.Column(db.Integer, primary_key=True)
         data = db.Column(db.String(10000))
         date = db.Column(db.DateTime(timezone=True), default=func.now())
         user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
     class User(db.Model, UserMixin):
         id = db.Column(db.Integer, primary_key=True)
         email = db.Column(db.String(150), unique=True)
         password = db.Column(db.String(150))
         first_name = db.Column(db.String(150))
         notes = db.relationship('Note')
         contact=db.relationship('Contact')

Have a look at Miguel Ginberg's Flask mega tutorial in the 'Database relationships' section for one-to-many relationships .在“数据库关系”部分查看Miguel Ginberg 的 Flask 大型教程,了解一对多关系

Look at the Followers, Contacts and Friends section for many-to-many relationships.查看关注者、联系人和朋友部分了解多对多关系。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM