sha*_*mun 3 python sqlalchemy flask flask-sqlalchemy
我正在尝试使用 SQLAlchemy 中的两个表填充数据库。我已经创建了数据库 test_database,现在我尝试在其中创建 2 个表。我已经检查过该数据库是否已使用 成功创建\l。以下是文件 create.py 的代码,它创建一个包含两个表的数据库:
import os
from flask import Flask, render_template, request
from models import *
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = 'postgresql://shammun:my_password@localhost:5432/test_database.db'
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
# db = SQLAlchemy()
db.init_app(app)
def main():
db.create_all()
if __name__ == "__main__":
with app.app_context():
main()
Run Code Online (Sandbox Code Playgroud)
这个文件create.py导入了model.py,生成了两个表,其代码如下:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Flight(db.Model):
__tablename__ = "flights"
id = db.Column(db.Integer, primary_key=True)
origin = db.Column(db.String, nullable=False)
destination = db.Column(db.String, nullable=False)
duration = db.Column(db.Integer, nullable=False)
class Passenger(db.Model):
__tablename__ = "passengers"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
flight_id = db.Column(db.Integer, db.ForeignKey("flights.id"), nullable=False)
Run Code Online (Sandbox Code Playgroud)
现在,在终端中运行文件 create.py 时,出现以下错误:
sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)致命:数据库“test_database.db”不存在
实际上,这几乎与我一个月前在这篇文章db.create_all() does not create a database 中提出的问题相同。唯一的区别是我问了错误的问题,数据库没有创建。实际上问题是为什么找不到数据库以及为什么会抛出错误。由于这个问题已经结束,并且我已经尝试了很长时间来解决它,但找不到任何解决方案,所以我再次问几乎相同的问题。如果有人能帮助我摆脱长期陷入的瓶颈,我将不胜感激。
使用此命令检查您的 postgres 正在运行哪个端口,\conninfo
因为我怀疑您的 PostgreSQL 数据库正在某个不同的端口上运行。
PostgreSQL 的默认端口是 5432,但如果它已经被其他应用程序占用,那么它会尝试下一个空端口并开始在 5433 上运行
因此,在 SQLALCHEMY_DATABASE_URI 的应用程序配置变量中,尝试将 5432 更改为 5433,看看它是否有效。
编辑1:
尝试.db从数据库名称中删除test_database.db,然后输入test_database
改变这个:
app.config["SQLALCHEMY_DATABASE_URI"] = 'postgresql://shammun:my_password@localhost:5432/test_database.db'
Run Code Online (Sandbox Code Playgroud)
对此:
app.config["SQLALCHEMY_DATABASE_URI"] = 'postgresql://shammun:my_password@localhost:5432/test_database'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13326 次 |
| 最近记录: |