인프런 커뮤니티 질문&답변

찌니ZZINI님의 프로필 이미지

작성한 질문수

파이썬 웹 개발(Flask, SQLAlchemy 이용)

등록 웹 페이지 개발 3

실습 중 질문이 있습니다.

작성

·

366

0

안녕하세요. ipython에서 실습 중 에러가 발생합니다. 

먼저, application.py는 다음과 같이 작성하였습니다.

from flask_sqlalchemy import SQLAlchemy
from flask import Flask

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///C:/jieun/inflearn/form.db'
db = SQLAlchemy(app)

#Role, Member, Project

class Role(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    position = db.Column(db.String(50))
    members = db.relationship('Member'backref = 'role'lazy = 'dynamic')

class Member(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(100))

    role_id = db.Column(db.Integer, db.ForeignKey('role.id'))
    projects = db.relationship('Project'secondary = 'member_project'backref = 'member'lazy = 'dynamic')


class Project(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    name = db.Column(db.String(100))
    members = db.relationship('Member'secondary='member_project'backref = 'project'lazy = 'dynamic')

db.Table('member_project'
    db.Column('member_id', db.Integer, db.ForeignKey('member.id')),
    db.Column('porject_id', db.Integer, db.ForeignKey('project.id'))
)

그리고 아래는 ipython에서 실습한 내용입니다.

In [1]: from application import db

c:\jieun\inflearn\venv\lib\site-packages\flask_sqlalchemy\__init__.py:872: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True or False to suppress this warning.

  warnings.warn(FSADeprecationWarning(

In [2]: from application import Role, Member, Project

In [3]: admin = Role(position = 'admin')

c:\jieun\inflearn\venv\lib\site-packages\sqlalchemy\orm\relationships.py:3441: SAWarning: relationship 'Member.project' will copy column member.id to column member_project.member_id, which conflicts with relationship(s): 'Project.member' (copies member.id to member_project.member_id), 'Member.projects' (copies member.id to member_project.member_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards.   The 

'overlaps' parameter may be used to remove this warning. (Background on this error at: http://sqlalche.me/e/14/qzyx)

  util.warn(

c:\jieun\inflearn\venv\lib\site-packages\sqlalchemy\orm\relationships.py:3441: SAWarning: relationship 'Member.project' will copy column project.id to column member_project.porject_id, which conflicts with relationship(s): 'Project.member' (copies project.id to member_project.porject_id), 'Member.projects' (copies project.id to member_project.porject_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards. 

  The 'overlaps' parameter may be used to remove this warning. (Background on this error at: http://sqlalche.me/e/14/qzyx)

  util.warn(

c:\jieun\inflearn\venv\lib\site-packages\sqlalchemy\orm\relationships.py:3441: SAWarning: relationship 'Project.members' will copy column project.id to column member_project.porject_id, which conflicts with relationship(s): 'Project.member' (copies project.id to member_project.porject_id), 'Member.projects' (copies project.id to member_project.porject_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards.   The 'overlaps' parameter may be used to remove this warning. (Background on this error at: http://sqlalche.me/e/14/qzyx)

  util.warn(

c:\jieun\inflearn\venv\lib\site-packages\sqlalchemy\orm\relationships.py:3441: SAWarning: relationship 'Project.members' will copy column member.id to column member_project.member_id, which conflicts with relationship(s): 'Project.member' (copies member.id to member_project.member_id), 'Member.projects' (copies member.id to member_project.member_id). If this is not the intention, consider if these relationships should be linked with back_populates, or if viewonly=True should be applied to one or more if they are read-only. For the less common case that foreign key constraints are partially overlapping, the orm.foreign() annotation can be used to isolate the columns that should be written towards.   The 'overlaps' parameter may be used to remove this warning. (Background on this error at: http://sqlalche.me/e/14/qzyx)

  util.warn(

db.create_all()로 form.db 파일은 생성된 상황입니다.

보시고 도움 부탁드립니다~!  

답변 3

0

최광성님의 프로필 이미지
최광성
지식공유자

이 코드에는 메인함수가 없네요. 아래 주소를 참고해보세요.

https://wikidocs.net/81039

0

찌니ZZINI님의 프로필 이미지
찌니ZZINI
질문자

여전히 에러가 납니다 .. ㅠㅠ

0

최광성님의 프로필 이미지
최광성
지식공유자

ipython 말고 단순한 python 으로 실행해보세요.