你好你好,
我在我面临的错误上发现了类似的问题,并尝试了提供的解决方案,但它对我不起作用。
我试图将我的模型分离到不同的目录中并将它们导入到 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) 我正在创建一个应用程序来替换浏览器中当前的选项卡管理器。我在组 - 表主题和选项卡 - 表选项卡之间创建了一个简单的一对多关系。我希望在删除主题时能够自动删除它的子主题。这就是我目前所拥有的:
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) 我正在开发一个使用 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)
鉴于应用程序是多线程的,这段代码会按预期工作吗?如果是,怎么办?如果不是,那么使其发挥作用的正确方法是什么?
我对我的 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\'\nRun Code Online (Sandbox Code Playgroud)\n\n我不知道自从我第一次初始化数据库以来发生了什么变化,除了将视图移动到单独的文件而不是 1 中。
\n\n我实际上可以通过将导入语句更改为来解决此问题
\n\nfrom .templates.nav_layout import *\nRun Code Online (Sandbox Code Playgroud)\n\n但当我尝试运行该应用程序时出现此错误:
\n\nTraceback (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) 我正在尝试为我的其中一个视图设置分页,但结果被过滤,我想知道如何做这样的事情。
products_product_name = Product.query.filter(Product.product_name.contains(search_name)).paginate(1, 20)
Run Code Online (Sandbox Code Playgroud) 在我问之前,我会承认这是一个奇怪的问题。我想知道是否可以使用原始 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 …
我在烧瓶程序中遇到了上述错误。我正在使用 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) 我正在修改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) 我有一个 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 应用程序的一部分,也许有什么我不明白的地方?
编辑:更改标题以更描述实际问题。
我正在尝试制作一个 Flask Web 应用程序,该应用程序从用户那里获取输入并将其保存到数据库 (sqlite3) 中。我为“航班”表定义了一个类 Flight 来注册客户将通过的航班。还有一个不同的“乘客”表来存储乘客的名字。
================================================== ==================
我在 Windows 7 操作系统上的 Visual Studio 2019 中运行代码。
================================================== ==================
这是我的模型课。
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) flask-sqlalchemy ×10
python ×9
flask ×8
sqlalchemy ×7
pagination ×1
postgresql ×1
python-3.x ×1
sqlite ×1