相关疑难解决方法(0)

无法完成Flask-Migration

我已经使用SQLAlchemy设置了一个本地Postgres DB,并且无法提交我的第一个条目.我继续犯这个错误......

ProgrammingError: (ProgrammingError) relation "user" does not exist
LINE 1: INSERT INTO "user" (name, email, facebook_id, facebook_token...
Run Code Online (Sandbox Code Playgroud)

看起来这些字段与数据库中的字段不匹配.我正在尝试使用flask-migrate进行迁移,但是,当我运行时,$ python app.py db migrate我收到此错误...

raise util.CommandError("No such revision '%s'" % id_)
alembic.util.CommandError: No such revision '39408d6b248d'
Run Code Online (Sandbox Code Playgroud)

最好删除所有内容并从头开始,因为我似乎已经破坏了我的数据库设置和/或迁移,但我不知道如何.

更新:数据库现在已经开始工作(我删除并再次创建它).但是,我仍然在尝试运行迁移时遇到同样的错误,结果是"没有这样的修订'39408d6b248d'指的是从一个不相关的项目迁移.我重新安装了flask-migrate但同样的错误.

python postgresql sqlalchemy-migrate flask-migrate

15
推荐指数
4
解决办法
2万
查看次数

db.create_all() 不在 Flask-SQLAclchemy 中创建表

我正在尝试使用Flask-SQLAclchemy和为用户类模型创建数据库表Postgres

我的模特班。

from app import db
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(70), index=True, nullable=False)
    email = db.Column(db.String(70), index=True, unique=True, nullable=False)
    password = db.Column(db.String(128))
Run Code Online (Sandbox Code Playgroud)

我的应用程序初始化。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config.from_object('app.instance.config.DevelopmentConfig')
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:RandomPass@localhost/BrightEventDb'
SQLALCHEMY_TRACK_MODIFICATIONS = True
db = SQLAlchemy(app)
Run Code Online (Sandbox Code Playgroud)

记录以下信息。

2018-01-06 11:53:09,978 INFO sqlalchemy.engine.base.Engine select version()
2018-01-06 11:53:09,979 INFO sqlalchemy.engine.base.Engine {}
2018-01-06 11:53:09,982 INFO sqlalchemy.engine.base.Engine select current_schema()
2018-01-06 11:53:09,982 INFO sqlalchemy.engine.base.Engine {}
2018-01-06 11:53:09,984 …
Run Code Online (Sandbox Code Playgroud)

python flask python-2.7 python-3.x flask-sqlalchemy

6
推荐指数
1
解决办法
5409
查看次数

db.create_all()不会创建在单独文件中定义的表

我正在尝试为我的模型创建表格,这些表格在我的应用程序的单独模块中定义.我打电话db.create_all(),但没有创建表,也没有错误.我已经定义了模型并在调用之前导入了它们create_all.为什么这不起作用?

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://postgres:123@localhost/flask'
db = SQLAlchemy(app)

from models import User

db.create_all()
db.session.commit()
Run Code Online (Sandbox Code Playgroud)

models.py:

from flask.ext.sqlalchemy import SQLAlchemy

db = SQLAlchemy()

class User(db.Model):
  __tablename__ = 'users'
  uid = db.Column(db.Integer, primary_key = True)
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy

5
推荐指数
1
解决办法
3677
查看次数

烧瓶:sqlalchemy.exc.ProgrammingError:(psycopg2.ProgrammingError)关系“用户”不存在

在此处输入图片说明

我正在基于http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982的烧瓶应用程序上工作。

作为tut的一部分,我试图连接到postgres服务器,其结构如屏幕截图所示。我添加了一个db“烧瓶”,您可以看到。

基于此tut,我的主文件('routes.py')中包含以下代码:

from flask.ext.sqlalchemy import SQLAlchemy

from flask import Flask

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql://postgres:123@localhost/flask"

db = SQLAlchemy(app)
from models import User
# db.init_app(app)
db.create_all()
db.session.commit()


admin = User('admin', 'admin@example.com', 'admin1', 'admin1@example.com')
guest = User('admi2', 'admin@ex1ample.com', 'admin', 'admin2@example.com')
# guest = User('guest', 'guest@example.com')
db.session.add(admin)
db.session.add(guest)
db.session.commit()
Run Code Online (Sandbox Code Playgroud)

models.py:

from flask.ext.sqlalchemy import SQLAlchemy
from werkzeug import generate_password_hash, check_password_hash

db = SQLAlchemy()

class User(db.Model):
  __tablename__ = 'users'
  uid = db.Column(db.Integer, primary_key = True)
  firstname = db.Column(db.String(100))
  lastname = db.Column(db.String(100)) …
Run Code Online (Sandbox Code Playgroud)

python postgresql flask

4
推荐指数
1
解决办法
1万
查看次数

SQLAlchemy 不创建表

我正在尝试像在教程中一样设置数据库,但是当我尝试添加一个表时,我遇到了一个表不存在的编程错误 User

这是错误 ( database.py)的文件:

from sqlalchemy import create_engine, MetaData
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base


engine = create_engine(
    "mysql+pymysql://testuser:testpassword@localhost/test?charset=utf8",
    connect_args = {
        "port": 3306
    },
    echo="debug",
    echo_pool=True
)

db_session = scoped_session(
    sessionmaker(
        bind=engine,
        autocommit=False,
        autoflush=False
    )
)

Base = declarative_base()

def init_db():
    import models
    Base.metadata.create_all(bind=engine)

    from models import User
    db_session.add(
        User(username="testuser", password_hash=b"", password_salt=b"", balance=1)
    )
    db_session.commit()

    print("Initialized the db")


if __name__ == "__main__":
    init_db()
Run Code Online (Sandbox Code Playgroud)

要初始化数据库(创建表),我只需运行该文件。创建测试用户时出错。

这是models.py

from sqlalchemy import Column, Integer, Numeric, Binary, …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

3
推荐指数
2
解决办法
5166
查看次数

SQLAlchemy db.create_all()演示失败

我正在按照本页面的教程进行操作:

https://pythonhosted.org/Flask-SQLAlchemy/quickstart.html

我相信我完全符合直线.但每次尝试db.create_all()时都会出错

这是我的代码(为了简单起见,我将实际的db.create_all()移动到了文件的一部分,尽管我已经按照教程在命令行中显示的方式进行了尝试.

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
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

db.create_all()
Run Code Online (Sandbox Code Playgroud)

我在Flask SQLAlchemy db.create_all()的 Stack Overflow上发现了一个类似的问题, 没有创建数据库

SQLAlchemy create_all()不创建表

但这种反应对我没有帮助.(事实上​​第二个的答案似乎有一个严重的错误)

这完全在Python 3.4中

我得到的错误很长,但这里是:

Traceback (most recent call last):
  File "C:\Programming\LearningFlask\FlaskCookbook\test_create_db\python\lib\site-packages\sqlalchemy\engine\strategies.py", line 90, in connect
    return dialect.connect(*cargs, …
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy flask

2
推荐指数
1
解决办法
3172
查看次数

SQLAchemy '未找到应用程序。要么在视图函数中工作,要么推送'

你好你好,

我在我面临的错误上发现了类似的问题,并尝试了提供的解决方案,但它对我不起作用。

我试图将我的模型分离到不同的目录中并将它们导入到 app.py 中

当我尝试将数据库导入 python 终端时,我发现找不到应用程序。

应用程序.py代码

from flask import Flask
from flask_restful import Resource, Api
# from flask_sqlalchemy import SQLAlchemy
from routes import test, root, user
from models.todo import db

app = Flask(__name__)
api = Api(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://username:pass123@localhost/db'
app.config['SECRET_KEY'] = 'thiskeyissecret'
# db.init_app(app)

with app.app_context():
    api = Api(app)
    db.init_app(app)




api.add_resource(root.HelloWorld, '/')
api.add_resource(test.Test, '/test')
api.add_resource(user.User, '/user')

if __name__ == '__main__':
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

楷模

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

class Todo(db.Model):
    __tablename__ = 'Todos'
    id = db.Column('id', …
Run Code Online (Sandbox Code Playgroud)

flask python-3.x flask-sqlalchemy

0
推荐指数
1
解决办法
1万
查看次数