2017-02-14 11 views
1

Я использую флягу и SQLAlchemy, у меня есть база данных в postgress, эта база данных содержит «данные» 200 записей, я хочу сделать выбор, но когда я это делаю, всегда даю мне ту же ошибку, этот мой код :Как сделать запрос, используя колбу и sqlalchemy?

Это мой model.py

from sqlalchemy import Column, ForeignKey, Integer, String 
from sqlalchemy import create_engine 
from sqlalchemy.orm import scoped_session, sessionmaker 
from sqlalchemy.ext.declarative import declarative_base 

Base = declarative_base() 

class Data(Base): 
    __tablename__ = 'data' 
    ids = Column(Integer(), primary_key=True) 
    customer_id = Column(String()) 
    inventory_id = Column(String()) 
    device_id = Column(String()) 

    def toJSON(self):  
     json = { 
      "ids":self.ids, 
      "customer_id":self.customer_id, 
      "inventory_id":self.inventory_id, 
      "device_id":self.device_id,  
     } 

     return json 

Это моя колба приложение:

from flask_sqlalchemy import SQLAlchemy 
from flask import Flask, render_template, request 
from flask_cors import CORS, cross_origin 
from model import Data, Base 

app = Flask(__name__) 
CORS(app) 
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:[email protected]/ibm' 
db = SQLAlchemy(app) 
data = [] 

def index(): 
    test_data() 
    return render_template("index.html",result = data) 

def test_data(): 
    sss = Base.Data.query.filter_by(ids=5).first() 
    print sss 

app.add_url_rule('/', 'index', index) 

if __name__ == '__main__': 
    app.run(debug = True, threaded=True) 

Это не работает, и всегда имеют ту же ошибку:

AttributeError: type object 'Base' has no attribute 'psirt_alerts_view'

Как это сделать, просто выберите?

UPDATE:

[2017-02-14 12:02:29,980] ERROR in app: Exception on/[GET] 
Traceback (most recent call last): 
    File "c:\python27\lib\site-packages\flask\app.py", line 1982, in wsgi_app 
    response = self.full_dispatch_request() 
    File "c:\python27\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request 
    rv = self.handle_user_exception(e) 
    File "c:\python27\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function 
    return cors_after_request(app.make_response(f(*args, **kwargs))) 
    File "c:\python27\lib\site-packages\flask\app.py", line 1517, in handle_user_exception 
    reraise(exc_type, exc_value, tb) 
    File "c:\python27\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request 
    rv = self.dispatch_request() 
    File "c:\python27\lib\site-packages\flask\app.py", line 1598, in dispatch_request 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "S:\ibm\ib.py", line 15, in index 
    test_data() 
    File "S:\ibm\ib.py", line 40, in test_data 
    sss = Base.data.query.filter_by(ids=5).first() 
AttributeError: type object 'Base' has no attribute 'data' 
+2

Пожалуйста, добавьте полное отслеживающий ошибки на ваш вопрос! –

+0

Если вы можете создать свою модель «данных», используя flask_sqlalchemy, вы можете сделать «Data.query». –

+0

'Данные' должны быть в верхнем регистре, а не' Base.data', это ваше имя класса – Arman

ответ

3

db экземпляр имеет объект сеанса, так что вы можете сделать запрос, как это:

db.session.query(Data).filter_by(ids=5).first() 
+0

Спасибо, это работает :) –

+0

Приятно слышать это;) – metmirr

 Смежные вопросы

  • Нет связанных вопросов^_^