私は、Postgresデータベースを照会し、データを挿入/削除する単純なFlask Webアプリケーションを構築しようとしています。私は更新/挿入についてもわからないですが、少なくとも私はdbをクエリします。私はORMを使いたくないのですが、それは非常に簡単だからです。以前の私の単純なpythonアプリケーションで使用して以来、私は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.before_request
フックを使用してルートメソッドを呼び出す前に、@app.route
メソッドで要求ごとにdb接続を手動で確立する例に注意してください。
あなたはORMが不要だと言っていましたが、SQLAlchemy
をnon-orm形式で使用することもできます:https://docs.sqlalchemy.org/en/latest/core/tutorial.html。これの利点は、db connectioを管理するための特定のsession
オブジェクトがあることです。http://flask.pocoo.org/docs/0.12/patterns/sqlalchemy/
関連する問題
- 1. 接続の開閉を開く/閉じる
- 2. PostgreSQL dbとSails.jsの接続
- 3. SQLAlchemy/Flask/PostgreSQLプール接続
- 4. Flask-MySQLdbは_mysql_exceptions.ProgrammingErrorを発生させます:閉じた接続を閉じる
- 5. psycopg2とpostgresqlの間の古い接続を閉じるには?
- 6. php postgresql永続的な接続は常に閉じる
- 7. コンテンツプロバイダによって開かれたオープンdb接続を閉じるandroid
- 8. PostgreSQLデータベース接続を開く効率
- 9. PostgreSQLメソッドの終了後に接続を閉じる
- 10. PostgreSQLデータベースのアイドル状態の接続を閉じるには
- 11. Flaskの自動再接続PostgreSQL
- 12. MongoEngine:接続を閉じる
- 13. マルチスレッド各スレッドのdb接続を閉じる方法
- 14. Websocketとメッセージの接続を閉じる
- 15. JavaとWebSocket接続を閉じる
- 16. 閉じるMQ接続
- 17. HibernateがDBの接続/セッションを閉じない
- 18. Spring JDBCテンプレート:queryforlistはdb接続を閉じませんか?
- 19. VaadinとHibernate - データベースへの接続を正しく閉じる
- 20. Windows Cソケット閉じると再接続
- 21. 私のクラスで私のDB接続を閉じるべきとき
- 22. LINQ to SQL DB接続が閉じない
- 23. 開いているデータベース接続を閉じる?
- 24. DBCP開いている接続をすべて閉じる
- 25. 非同期npg接続のPostgreSQL DB
- 26. ブラウザを開く/閉じる
- 27. クロムエクステンションを開く/閉じる
- 28. c3p0で閉じた接続
- 29. 他のアプリケーションで開かれたGPRS接続を閉じる
- 30. mysql接続を複数回開いて閉じる
ここで 'get_db'を呼び出す必要がありますか? – Jodooomi
文書では、現在のコンテキスト(この場合は要求)にコールを結合する必要があるので、メソッドに '@ app.before_request'属性を設定する必要があります。コードサンプルを更新しました。 – user783836
"g"は何ですか?変数を格納できるセッションオブジェクトのようなものですか? – Jodooomi