小编Moh*_*eem的帖子

(烧瓶)-sqlalchemy查询,必须导入所有模型

我在Flask和Flask-SQLAlchemy上遇到问题,对于任何查询,我都需要导入所有相关模型。

现在我的auth.views.py看起来像这样(对这件事进行编程的前几行只是一个测试视图)

from flask import jsonify                                                   

from . import auth                                                          
from app.models.user import User                                            


@auth.route('/', methods=['GET'])                                            
def index():                                                                 
    users = User.query.all()                                                     
    return jsonify({'name': users[0].name}) 
Run Code Online (Sandbox Code Playgroud)

现在我遇到一个错误

“ InvalidRequestError:初始化映射器Mapper | User | user时,表达式'Course'未能找到名称(“ name'Course'未定义”。)如果这是一个类名,请考虑在该类之后添加该Relationship()两个相关的类都已定义。”

我有一个项目,其中有一个像这样的模型包

app                                                                         
??? auth                                                                    
?   ??? __init__.py                                                         
?   ??? views.py                                                            
??? __init__.py                                                             
??? models                                                                  
    ??? assignment.py                                                       
    ??? base.py                                                             
    ??? client.py                                                           
    ??? course.py                                                           
    ??? __init__.py                                                         
    ??? submission.py                                                       
    ??? user.py    
Run Code Online (Sandbox Code Playgroud)

我的用户类与课程之间有很多对比,与提交方面有一对多。

这可以通过导入“课程”(然后是“提交”,然后是从那里的关系,最终是所有模型)来解决。

在为Pyramid项目工作时,我们还使用SQLAlchemy,但我不必导入所有模型即可完成工作。有什么想法吗?我真的无法弄清楚,也无法用Google搜索。

用户看起来像这样

user_course = db.Table(                                                     
    'user_course', db.Model.metadata,                                          
    db.Column('student_id', UUID, db.ForeignKey('user.id'),                    
              primary_key=True),                                               
    db.Column('course_id', UUID, db.ForeignKey('course.id'),                   
              primary_key=True)                                                
)                                                                              


class User(db.Model): …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask

0
推荐指数
2
解决办法
2557
查看次数

标签 统计

flask ×1

python ×1

sqlalchemy ×1