我已经使用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但同样的错误.
我正在尝试使用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) 我正在尝试为我的模型创建表格,这些表格在我的应用程序的单独模块中定义.我打电话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) 我正在基于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) 我正在尝试像在教程中一样设置数据库,但是当我尝试添加一个表时,我遇到了一个表不存在的编程错误 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) 我正在按照本页面的教程进行操作:
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上发现了一个类似的问题, 没有创建数据库
和
但这种反应对我没有帮助.(事实上第二个的答案似乎有一个严重的错误)
这完全在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) 你好你好,
我在我面临的错误上发现了类似的问题,并尝试了提供的解决方案,但它对我不起作用。
我试图将我的模型分离到不同的目录中并将它们导入到 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)