标签: flask-sqlalchemy

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万
查看次数

Flask-SQLAlchemy:sqlite3 完整性错误

我正在创建一个应用程序来替换浏览器中当前的选项卡管理器。我在组 - 表主题和选项卡 - 表选项卡之间创建了一个简单的一对多关系。我希望在删除主题时能够自动删除它的子主题。这就是我目前所拥有的:

from flask import request, redirect, url_for, render_template, Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import exc
from flask_whooshee import Whooshee
from datetime import datetime

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)
whooshee = Whooshee(app)

@whooshee.register_model('topic_name')
class Topic(db.Model):
    __tablename__ = 'topic'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    topic_name = db.Column(db.String, unique=True, nullable=False)
    topic_created = db.Column(db.DateTime, default=datetime.utcnow)
    topic_changed = db.Column(db.DateTime, default=datetime.utcnow)
    topic_tabs = db.relationship('Tab', backref='topic', cascade='all, delete-orphan', lazy='dynamic')

@whooshee.register_model('tab_name', 'tab_link', 'tab_description')
class Tab(db.Model): …
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy flask flask-sqlalchemy

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

在多线程环境中使用 SQLAlchemy 执行事务

我正在开发一个使用 Flask、SQLAlchemy 和 PostgreSQL 的应用程序。我必须编写一个在数据库上执行多个查询的事务。

def exec_query_1():
    with db.engine.connect() as connection:
        connection.execute(#some-query)

def exec_query_2():
    with db.engine.connect() as connection:
        connection.execute(#some-query)

def exec_query_3():
    with db.engine.connect() as connection:
        connection.execute(#some-query)

def execute_transaction():
    with db.engine.connect() as connection:
        with connection.begin() as transaction:
            exec_query_1()
            exec_query_2()
            exec_query_3()
Run Code Online (Sandbox Code Playgroud)

鉴于应用程序是多线程的,这段代码会按预期工作吗?如果是,怎么办?如果不是,那么使其发挥作用的正确方法是什么?

python postgresql sqlalchemy flask-sqlalchemy

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

Flask-migrate 找不到自定义模块

我对我的 SQLAlchemy 模型做了一些更改,我想将它们迁移到我的数据库。当我尝试迁移时,出现以下错误:

\n\n
$ flask db migrate\nUsage: flask db migrate [OPTIONS]\n\nError: While importing "minerva.dashboard.app", an ImportError was raised:\n\nTraceback (most recent call last):\n  File "/home/mattfred/Minerva/envs/dashboard/lib/python3.7/site-packages/flask/cli.py", line 235, in locate_app\n    __import__(module_name)\n  File "/home/mattfred/Minerva/minerva/dashboard/app.py", line 13, in <module>\n    from templates.nav_layout import *\nModuleNotFoundError: No module named \'templates\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我不知道自从我第一次初始化数据库以来发生了什么变化,除了将视图移动到单独的文件而不是 1 中。

\n\n

我实际上可以通过将导入语句更改为来解决此问题

\n\n
from .templates.nav_layout import *\n
Run Code Online (Sandbox Code Playgroud)\n\n

但当我尝试运行该应用程序时出现此错误:

\n\n
Traceback (most recent call last):\n  File "app.py", line 13, in <module>\n    from .templates.nav_layout import *\nModuleNotFoundError: No module named \'__main__.templates\'; \'__main__\' is not …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy flask-migrate

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

使用 Flask-Sqlalchemy 通过过滤器进行分页

我正在尝试为我的其中一个视图设置分页,但结果被过滤,我想知道如何做这样的事情。

products_product_name = Product.query.filter(Product.product_name.contains(search_name)).paginate(1, 20)
Run Code Online (Sandbox Code Playgroud)

python pagination flask flask-sqlalchemy

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

Flask / SQL Alchemy 原始查询而不是类方法

在我问之前,我会承认这是一个奇怪的问题。我想知道是否可以使用原始 SQL 而不是使用方法本身来复制 Flask/SQL Alchemy 类方法?

长话短说,我和我的队友正在参加数据库设计课程,我们现在处于实施阶段,我们正在编写基于我们的数据库架构设计的应用程序。我们想让事情变得简单,所以我们选择在 Python 中使用 Flask。我们正在关注Flask Mega 教程,这是一个解释如何像我们所做的那样构建基本站点的精彩教程。我们刚刚完成了第 5 章:用户登录,并且正在继续。

app/routes.py脚本中,教程做了一些事情来获取用户信息。以下是示例应用程序的示例登录路径:

from flask_login import current_user, login_user
from app.models import User

# ...

@app.route('/login', methods=['GET', 'POST'])
def login():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user is None or not user.check_password(form.password.data):
            flash('Invalid username or password')
            return redirect(url_for('login'))
        login_user(user, remember=form.remember_me.data)
        return redirect(url_for('index'))
    return render_template('login.html', title='Sign In', form=form)
Run Code Online (Sandbox Code Playgroud)

该行user = User.query.filter_by(username=form.username.data).first()是我感兴趣的。基本上,该行实例化了User类,它是来自 SQL …

python sqlalchemy flask flask-sqlalchemy

-1
推荐指数
1
解决办法
3929
查看次数

SQLALCHEMY_TRACK_MODIFICATIONS 增加了显着的开销,将来会默认禁用。将其设置为 True 以抑制此警告

我在烧瓶程序中遇到了上述错误。我正在使用 Flask-SQLALCHEMY - 2.4.1 和 Pycharm 编辑器。请帮助解决这个问题。我在这上面浪费了很多时间。

UserWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True to suppress this warning.
  warnings.warn('SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True to suppress this warning.')
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: …
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy

-1
推荐指数
1
解决办法
3176
查看次数

AttributeError:'function'对象没有使用sqlalchemy'确认'的属性

我正在修改cookiecutter Flask app.这使用flask_login usermixin.

我有一个方法寄存器,其中包含:

from myflaskapp.models.user import User

if form.validate_on_submit()
    new_user = User.query.filter_by(email=posted_email).first
    if new_user:
        if new_user.confirmed:
Run Code Online (Sandbox Code Playgroud)

posted_email不在表中,所以我认为会返回None值.为什么这不起作用?

myflaskapp.models.user:

from flask.ext.login import UserMixin
from myflaskapp.extensions import db, bcrypt
from myflaskapp.database import (
    Column,
    Model,
    ReferenceCol,
    relationship,
    SurrogatePK,
)



class User(UserMixin, SurrogatePK, Model):

    __tablename__ = 'users'
    username = Column(db.String(80), nullable=True)
    email = Column(db.String(80), nullable=False)
    #: The hashed password
    password = Column(db.String(128), nullable=True)
    created_at = Column(db.DateTime, nullable=False, default=dt.datetime.utcnow)
    first_name = Column(db.String(30), nullable=True)
    last_name = Column(db.String(30), nullable=True)
    active = Column(db.Boolean(), default=False) …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy

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

如何打印实际 SQLAlchemy 查询以进行故障排除:SQLAlchemy 过滤语句将过滤条件替换为 %(column_name_1)s

我有一个 SQLAlchemy 查询,如下所示:

query = db.session.query(
    Place.name,
    Place.population,
).filter(Place.population==8000)
Run Code Online (Sandbox Code Playgroud)

但是当我打印查询时,结果如下:

SELECT place.name AS place_name, place.population AS place_population
FROM place
WHERE place.population = %(population_1)s
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它不断用 替换我的过滤条件%(population_1)s。这个查询是 Flask 应用程序的一部分,也许有什么我不明白的地方?

编辑:更改标题以更描述实际问题。

python sqlalchemy flask-sqlalchemy

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

为什么 SQLAlchemy 无法为映射表组装任何主键列?

我正在尝试制作一个 Flask Web 应用程序,该应用程序从用户那里获取输入并将其保存到数据库 (sqlite3) 中。我为“航班”表定义了一个类 Flight 来注册客户将通过的航班。还有一个不同的“乘客”表来存储乘客的名字。

================================================== ==================

我在 Windows 7 操作系统上的 Visual Studio 2019 中运行代码。

  • Python 3.7 64 位
  • Flask-SQLAlchemy 2.4.0
  • SQLAlchemy 1.3.4
  • 烧瓶 0.12.4
  • 点 19.1.1

================================================== ==================

这是我的模型课。

import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy

db=SQLAlchemy()

class Flight(db.Model):
    """Flight class"""
    __tablename__ = "flights"
    id = db.Column(db.Integer, pimary_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):
    """Passenger class"""
    __tablename__ = "passengers"
    id = db.Column(db.Integer, pimary_key=True)
    name = …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy

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