728x90
반응형

IT/파이썬 32

SQLAlchemy 같은 테이블에 여러 개의 Foreign key 연결하기

문제상황 class User(db.Model): ... class Store(db.Model): ... # 메인 유저 main_user = db.Column(db.Integer, db.ForeignKey('user.id')) user_main = db.relationship('User', backref=db.backref('store_by_main', uselist=False)) # 서브 유저 sub_user = db.Column(db.Integer, db.ForeignKey('user.id')) user_sub = db.relationship('User', backref=db.backref('store_by_sub', uselist=False)) 그냥 연결하면 Ambiguouse 외래키라고 아래처럼 에..

IT/파이썬 2021.12.13

SQLAlchemy One to One 설정하기 (backref와 back_populates 차이)

원래 양방향 참조를 하려면 부모/자식 엔티티 각각에서 back_populates를 해줘야 함 class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) children = relationship("Child", back_populates="parent") # on the parent class class Child(Base): __tablename__ = 'child' id = Column(Integer, primary_key=True) parent_id = Column(Integer, ForeignKey('parent.id')) parent = relationship("Parent", back_populates=..

IT/파이썬 2021.12.10

파이썬 현재시각 가져오기 : module 'datetime' has no attribute 'now'

현재 날짜를 가져오려고 datetime을 이용했다 import datetime ... create_time=datetime.now() 그런데 안됨 그런 어트리뷰트 없다고 에러뜸 module 'datetime' has no attribute 'now' 임포트 방법을 수정 from datetime import datetime ... create_time=datetime.now() from datetime을 추가해서 임포트했다 from에서 받는 datetime은 datetime 모듈이고 import에서 받는 datetime은 동명의 모듈의 하위클래스이다. 내가 쓰려고 한 now() 메소드는 datetime.datetime.now()인 것이기 때문에 datetime 하나만 쓰려면 저렇게 명시해줘야 한다...

IT/파이썬 2021.12.08

플라스크 sqlalchemy 조인 에러 : Could not determine join condition between parent/child tables on relationship TenantRoles.tenant - there are no foreign keys linking these tables

model을 아래와 같이 Many to One으로 정의하고 class Tenants(db.Model): tenant_id = db.Column(db.Integer, primary_key=True, nullable=False) ... class TenantRoles(db.Model): ... tenant_id = db.Column(db.Integer, db.ForeignKey('Tenants.tenant_id'), nullable=True) tenant = db.relationship('Tenants', backref=db.backref('tenant_role')) db상에서도 fk로 연결이 되어있는데 실행해보면 에러남 이 에러메시지의 최하단에 나오는 문구는 이것 sqlalchemy.exc.NoForeig..

IT/파이썬 2021.06.16

파이참 프로젝트 루트 디렉토리 이름 변경 안되는 문제 (java.io.ioexception cannot rename)

여기에서 service-one을 resource-server로 이름을 바꾸고 싶었다. 우클릭 > refactor > rename으로 이름 변경을 시도하지만 안바꿔준다. 참고 : https://stackoverflow.com/questions/56107963/renaming-project-root-directory-in-pycharm-gives-java-io-ioexception 스택오버플로우를 뒤져보니 어디선가 해당 프로젝트를 사용중이어서 그렇단다. 그 글을 보고 문득.... 콘솔창을 보니 앱이 실행중이었다. ...정지하고 다시 rename하니 잘 된다^^!!!

IT/파이썬 2021.06.14

[플라스크] 앵커로 스크롤 유지하기

앵커를 이용해 스크롤 위치를 이동시키는 것은 html 기능임 a 태그는 보통 href="..."로 링크로 사용하는데 href가 아닌 name을 달아두고 주소창에 #name을 써주면 해당 위치로 스크롤시켜준다. 플라스크에서 url_for와 redirect를 이용해 앵커 엘리먼트를 넘겨주고자 하면 아래처럼 쓰면 된다. html bp return redirect('{}#comment_{}'.format( url_for('question.detail', question_id=comment.answer.question_id), comment.id))

IT/파이썬 2021.06.01

[점프투플라스크] 이미 추천했습니다 띄우기

점프투플라스크 216쪽 자신의 글 추천시 오류 표시기능을 추가하는데 이미 추천한 글을 또 추천할때도 오류 표시를 해주고 싶을떼 vote_views.py @bp.route('/question//') @login_required def question(question_id): _question = Question.query.get_or_404(question_id) print(g.user, "/*/*/*/*/*", _question.voter) print("===>", g.user in _question.voter) ... 이렇게 찍어보면 g.user가 voter에 있으면 true를 반환하는 게 보인다. print를 지우고 elif문을 추가하자 @bp.route('/question//') @login_req..

IT/파이썬 2021.06.01
300x250
반응형