pg数据库连接flask
时间: 2023-07-05 19:23:29 浏览: 46
在 Flask 中连接 PostgreSQL 数据库可以使用 Flask 的扩展模块 Flask-SQLAlchemy。
首先,需要安装 psycopg2-binary 和 Flask-SQLAlchemy:
```bash
pip install psycopg2-binary Flask-SQLAlchemy
```
然后,在 Flask 应用程序中配置数据库连接:
```python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://username:password@localhost/mydatabase'
db = SQLAlchemy(app)
```
其中,`username` 和 `password` 分别是 PostgreSQL 数据库的用户名和密码,`mydatabase` 是要连接的数据库名。
现在,可以通过 `db` 对象来操作数据库了,例如:
```python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://username:password@localhost/mydatabase'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return '<User %r>' % self.username
```
这里定义了一个 `User` 模型,它对应数据库中的一个表。可以使用 `db.create_all()` 来创建表格,并使用 `db.session` 来进行数据库操作,例如:
```python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://username:password@localhost/mydatabase'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return '<User %r>' % self.username
db.create_all()
user = User(username='john', email='john@example.com')
db.session.add(user)
db.session.commit()
users = User.query.all()
print(users)
```