我本地PostgreSQL数据库的URL格式是什么?
我正在学习一个关于flask和sqlalchemy的教程,链接在这里:https://pythonhosted.org/Flask-SQLAlchemy/quickstart.html#a-minimal-application。我把我的数据库地址设置成了:postgres://username:password@localhost:5432/dbname。
当我在交互式的python环境中运行db.create_all()时,没有报错,但也没有任何反应。
根据我的理解,这个命令应该会创建一个用户表,里面有三个列:id、username和email。
from flask import Flask, url_for, render_template
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://username:password@localhost:5432/dbname'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
app.debug = True
@app.route("/")
def hello():
return render_template('hello.html')
if __name__ == "__main__":
app.run()
3 个回答
0
试着在URL
中使用postgresql
,而不是postgres
。
这是在JDBC和SQLAlchemy文档中都使用的格式(http://docs.sqlalchemy.org/en/rel_0_9/dialects/postgresql.html)。
1
一旦你安装了PostgreSQL,你可以这样做:
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql://<username>:<password>@localhost/<database_name>"
这里的内容解释如下:
<username>
是你的用户名(默认是postgres
)<password>
是你的密码(默认是postgres
)<database_name>
是你的数据库名称(如果你使用的是安装PostgreSQL时创建的数据库,默认也是postgres
)。
如果你创建了一个角色(用户),比如说 admin
,密码是 admin
,并且有一个名为 posts
的数据库,那么你可以这样做:
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql://admin:admin@localhost/posts"
更多信息请查看这里 https://flask-sqlalchemy.palletsprojects.com/en/2.x/config/
18
这应该是完全一样的格式。
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql://username:password@localhost:port/DBNAME"