Postgres DB를 쿼리하고 데이터를 삽입/삭제하는 간단한 Flask 웹 응용 프로그램을 작성하려고합니다. 나는 심지어 업데이트/삽입에 대해서는 확신하지 못하지만, 최소한 db를 쿼리 할 것입니다. 아주 간단하기 때문에 ORM을 사용하고 싶지 않습니다. 전에 간단한 파이썬 응용 프로그램에서 사용한 적이 있기 때문에 psycopg2
을 사용하고 싶습니다. 이제 DB 연결을 열고 닫아야하는 방법과시기를 알고 싶습니다. 나는 이것을 보았습니다 : http://flask.pocoo.org/docs/0.12/tutorial/dbcon/하지만 대답을 찾지 못했습니다.Flask + Postgresql 및 db 연결 열기/닫기
0
A
답변
1
http://flask.pocoo.org/docs/0.12/patterns/sqlite3/이 더 좋은 예입니다. 그것의 sqllite에 대한,하지만 다른 모든 것은 초기 연결이 어떻게 설정되었는지입니다. https://github.com/pallets/flask/blob/master/examples/flaskr/flaskr/flaskr.py : 당신은 여기에 DB의 사용을 보여주는 완벽하게 작동하는 코드 예제를 찾을 수 있습니다
import sqlite3
from flask import g
DATABASE = '/path/to/database.db'
@app.before_request
def get_db():
db = getattr(g, '_database', None)
if db is None:
db = g._database = sqlite3.connect(DATABASE)
return db
@app.teardown_appcontext
def close_connection(exception):
db = getattr(g, '_database', None)
if db is not None:
db.close()
: 그것은 sqllite3
를 사용하는 경우 그래서, 당신의 psycopg2
전화를했습니다. @app.route
메서드에서 요청 당 db 연결을 수동으로 설정하는 예제입니다. 위 예제에서는 @app.before_request
후크를 사용하여 route 메서드를 호출하기 전에이를 설정합니다.
ORM을 원하지 않는다고 말했지만 SQLAlchemy
을 사용할 수도 있습니다 (https://docs.sqlalchemy.org/en/latest/core/tutorial.html). 이 이점은 db connectio를 관리하기위한 특정 session
개체가 있다는 것입니다. http://flask.pocoo.org/docs/0.12/patterns/sqlalchemy/
관련 문제
- 1. SQLAlchemy/Flask/PostgreSQL 풀 연결
- 2. 데이터베이스 연결 누설 : PostgreSQL, SQLAlchemy, Flask
- 3. Flask Framework의 DB 연결 관련 문제
- 4. 연결 php 및 postgreSQL
- 5. PostgreSQL - DB 보안 및 구조 숨기기
- 6. PostgreSQL 및 C 다중 연결
- 7. flask-sqlalchemy와 동적 데이터베이스 연결
- 8. SonarQube와 PostgreSQL DB 구성의 혼동
- 9. db 생성시 연결 오류가 발생했습니다.
- 10. Postgresql 및 devise db 마이그레이션 실패
- 11. Flask-SQLAlchemy 및 SQLAlchemy
- 12. 레일즈 - DB 연결 해제
- 13. PostgreSQL + Python : 닫기 연결
- 14. rake db : migrate postgreSQL
- 15. Vaadin 및 db 연결 풀링
- 16. DB 스키마 및 레일스 연결
- 17. ADF DB 연결 및 세션
- 18. flask-socketio를 user_loader와 연결
- 19. PostgreSQL 성능 튜닝 및 최대 연결
- 20. 배열을 기존 postgresql 배열에 연결
- 21. Flask-SQLAlchemy 및 Celery 셀러리 작업에서 postgresql 연결을 올바르게 관리합니다.
- 22. 비동기 npg 연결을 사용하는 PostgreSQL DB
- 23. Heroku PostgreSQL 데이터베이스에 연결
- 24. PostgreSQL RubyMine 연결 설정
- 25. node.js 및 pg에서 Postgresql 연결 시간이 초과되었습니다.
- 26. Android Proguard postgresql 및 ssl 연결
- 27. Django ORM 및 PostgreSQL 연결 제한
- 28. sqlalchemy postgresql enum이 db 이주시 유형을 생성하지 않습니다.
- 29. postgreSQL 서버에서 연결 시도가 실패했습니다
- 30. heroku db : push with postgresql
여기서 get_db를 호출해야하는 위치는 무엇입니까? – Jodooomi
문서에서는 현재 상황 (이 경우 요청)에 대한 호출을 제안해야하므로 메서드에 @ app.before_request' 속성을 추가해야합니다. 코드 샘플을 업데이트했습니다. – user783836
"g"의 정의는 변수를 저장할 수있는 세션 객체와 같은 것입니까? – Jodooomi