강의

멘토링

커뮤니티

Inflearn Community Q&A

likemika1179's profile image
likemika1179

asked

Python Web Development (using Flask, SQLAlchemy)

Developing a registration web page 3

실습 중 질문이 있습니다.

Written on

·

522

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 파일은 생성된 상황입니다.

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

pythonsqlalchemyflask

Answer 3

0

kwangsung님의 프로필 이미지
kwangsung
Instructor

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

https://wikidocs.net/81039

0

likemika1179님의 프로필 이미지
likemika1179
Questioner

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

0

kwangsung님의 프로필 이미지
kwangsung
Instructor

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

likemika1179's profile image
likemika1179

asked

Ask a question