Вам не нужно к commit
, Вам просто нужно к flush
. Вот некоторый пример кода. После вызова к сброс можно получить доступ к первичному ключу, который был присвоен. Обратите внимание, что это с SQLAlchemy v1.3.6 и Python 3.7.4.
from sqlalchemy import *
import sqlalchemy.ext.declarative
Base = sqlalchemy.ext.declarative.declarative_base()
class User(Base):
__tablename__ = 'user'
user_id = Column('user_id', Integer, primary_key=True)
name = Column('name', String)
if __name__ == '__main__':
import unittest
from sqlalchemy.orm import *
import datetime
class Blah(unittest.TestCase):
def setUp(self):
self.engine = create_engine('sqlite:///:memory:', echo=True)
self.sessionmaker = scoped_session(sessionmaker(bind=self.engine))
Base.metadata.bind = self.engine
Base.metadata.create_all()
self.now = datetime.datetime.now()
def test_pkid(self):
user = User(name="Joe")
session = self.sessionmaker()
session.add(user)
session.flush()
print('user_id', user.user_id)
session.commit()
session.close()
unittest.main()
Это было упомянуто: http://www.blindmotion.com/?p=73 , хотя оно может быть неполным, поскольку не выпущено Google . Это, вероятно, охватывает около 99% случаев, за исключением случайных улучшений и выпусков API погоды сотрудниками Google.
РЕДАКТИРОВАТЬ:
blindmotion.com не работает, в интернет-архиве есть содержимое страницы: http : //web.archive.org/web/20111001141159/http: //www.blindmotion.com/2009/03/google-weather-api-images/ . (Примечание от 2009 г.)
https://gist.github.com/bzerangue/806934 (от Виджая, указанный в ответах ниже), вероятно, является более актуальным списком
Вот лучший список, который я смог найти: http://www.blindmotion.com/?p=73
Вы можете рассмотреть альтернативные API, которые официально поддерживаются и задокументировано. RSS-канал погоды Yahoo! Представляет собой удобный и простой в использовании API. Я использую API Национальной метеорологической службы в одном из моих проектов, потому что мне нужно получить прогноз на определенный период времени в будущем, и это позволяет мне делать это достаточно простым способом.