2017-03-22 4 views
0

플라스크 파이썬 프레임 워크와 Sqlite를 데이터베이스로 사용하여 간단한 소셜 미디어 앱을 작성했습니다. 그러나 프로그램을 실행 한 후 다음 오류가 표시됩니다. 나는 버그를 일으키는 일종의 혼란 스러워요.플라스크에 Peewee 운영 오류가 발생했습니다

peewee.OperationalError: Connection already open

내 계획은 사용자가 자신의 이메일 주소를 입력하고 로그인 passoword 수 있도록 로그인 뷰를 작성하는 것입니다. 지금까지 로그인을위한보기를 만들었고 사용자를 다시 색인 페이지로 리디렉션합니다. 위의 오류는 데이터베이스를 닫지 않았 음을 나타냅니다. 그러나, 나는에 연결하고 데이터베이스를 닫는 작성한 두 가지 기능 (models.py에서)는 아래에 주어진다 :

def initialize(): 
    DATABASE.connect() 
    DATABASE.create_tables([User], safe=True) 
    DATABASE.close() 

그리고 나는 그와 models.initialize()

if __name__ == '__main__': 
    models.initialize() 
    app.run(debug=True, port=8000, host='0.0.0.0') 

에 의해 app.py에 전화 어떻게 든

@app.before_request 
def before_request(): 
    """Connect to the database before each request""" 
    g.db = models.DATABASE 
    g.db.connect() 


@app.after_request 
def after_request(response): 
    """Close the database after each request""" 
    g.db.close() 
    return response 

답변

0

이가 연결이되고 싶어한다을 보일 수있을 것입니다 : app.py 기능 데코레이터 다음과 같은 방법이있다 누출. connect() 대신 get_conn()을 사용할 수 있으며 이렇게하면 연결이 두 번 열리지 않습니다.