Używam SQLAlchemy i istnieją co najmniej trzy podmioty: engine, sessioni connection, które mają executemetody, więc jeśli na przykład chcemy, aby zaznaczyć wszystkie rekordy ze tablemogę to zrobić engine.execute(select([table])).fetchall() i to connection.execute(select([table])).fetchall() a nawet to session.execute(select([table])).fetchall() - wyniki będą takie same. Jak rozumiem, jeśli ktoś engine.executego używa , tworzy connection, otwiera …
Czy istnieje sposób, aby SQLAlchemy wykonywać zbiorcze wstawianie zamiast wstawiania poszczególnych obiektów? to znaczy, robić: INSERT INTO `foo` (`bar`) VALUES (1), (2), (3) zamiast: INSERT INTO `foo` (`bar`) VALUES (1) INSERT INTO `foo` (`bar`) VALUES (2) INSERT INTO `foo` (`bar`) VALUES (3) Właśnie przekonwertowałem kod tak, aby używał sqlalchemy zamiast …
Mam userstabelę w mojej bazie danych MySql. Ten stół ma id, namei agepola. Jak mogę usunąć niektóre wpisy id? Teraz używam następującego kodu: user = User.query.get(id) db.session.delete(user) db.session.commit() Ale nie chcę wykonywać żadnego zapytania przed operacją usuwania. Czy jest na to sposób? Wiem, mogę użyć db.engine.execute("delete from users where id=..."), …
Jak określić kolumnę, którą chcę w zapytaniu za pomocą modelu (domyślnie wybiera wszystkie kolumny)? Wiem, jak to zrobić z sesją sqlalchmey: session.query(self.col1)ale jak to zrobić z modelami? Nie mogę SomeModel.query(). Czy jest jakiś sposób?
Odnoszę się do następującego samouczka, aby utworzyć stronę logowania do mojej aplikacji internetowej. http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982 Mam problem z bazą danych. Dostaję ImportError: No module named MySQLdb kiedy wykonuję http://127.0.0.1:5000/testdb Wypróbowałem wszystkie możliwe sposoby instalacji pythona mysql, wspomnianego w samouczku, easy_install, sudo apt-get install. Zainstalowałem mysql w moim wirtualnym env. Moja struktura …
Rozpoczynam nową aplikację i patrzę na użycie ORM - w szczególności SQLAlchemy. Powiedzmy, że mam kolumnę „foo” w mojej bazie danych i chcę ją zwiększyć. W prostym sqlite jest to łatwe: db = sqlite3.connect('mydata.sqlitedb') cur = db.cursor() cur.execute('update table stuff set foo = foo + 1') Znalazłem odpowiednik SQLAlchemy SQL-builder: …
Musi brakować czegoś trywialnego w opcjach kaskadowych SQLAlchemy, ponieważ nie mogę uzyskać prostego usuwania kaskadowego, aby działał poprawnie - jeśli element nadrzędny jest usunięty, elementy podrzędne pozostają z nullkluczami obcymi. Umieściłem tutaj zwięzły przypadek testowy: from sqlalchemy import Column, Integer, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy import create_engine from …
Chcę zrobić coś takiego: f = Foo(bar='x') session.add(f) session.flush() # do additional queries using f.id before commit() print f.id # should be not None session.commit() Ale f.idjest None, gdy próbuję go. Jak to działa?
Podążałem za przewodnikiem tutaj: http://www.sqlalchemy.org/docs/orm/examples.html?highlight=versioning#versioned-objects i napotkałem problem. Moje relacje zdefiniowałem następująco: generic_ticker = relation('MyClass', backref=backref("stuffs")) z ciągami, więc nie przejmuje się kolejnością importu modułów mojego modelu. To wszystko działa normalnie, ale kiedy używam meta wersjonowania, pojawia się następujący błąd: sqlalchemy.exc.InvalidRequestError: Podczas inicjowania programu mapującego Mapper | MyClass | stuff, …
Jak mogę dodać filtr, tak jak w SQL, aby wybrać wartości, które NIE są NULL z określonej kolumny? SELECT * FROM table WHERE YourColumn IS NOT NULL; Jak mogę zrobić to samo z filtrami SQLAlchemy? select = select(table).select_from(table).where(all_filters)
Ten temat nie był poruszany od jakiegoś czasu, tutaj ani gdzie indziej. Czy istnieje rozwiązanie konwertujące SQLAlchemy <Query object>na pandas DataFrame? Pandy mają możliwość używania, pandas.read_sqlale wymaga to użycia surowego SQL. Mam dwa powody, dla których chcę tego uniknąć: 1) mam już wszystko przy użyciu ORM (dobry powód sam w …
Oto model: class User(Base): ... birthday = Column(Date, index=True) #in database it's like '1987-01-17' ... Chcę filtrować między dwiema datami, na przykład, aby wybrać wszystkich użytkowników w przedziale 18-30 lat. Jak zaimplementować to z SQLAlchemy? Myślę o: query = DBSession.query(User).filter( and_(User.birthday >= '1988-01-17', User.birthday <= '1985-01-17') ) # means age …
Chciałbym dokonać migracji aplikacji Flask. Używam Alembic. Jednak pojawia się następujący błąd. Target database is not up to date. W Internecie przeczytałem, że ma to coś wspólnego z tym. http://alembic.zzzcomputing.com/en/latest/cookbook.html#building-an-up-to-date-database-from-scratch Niestety nie bardzo rozumiem, jak zaktualizować bazę danych i gdzie / jak mam napisać kod podany w linku. Jeśli masz …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.