Сообщения имеются в большом количестве относительно этой темы, и помочь другим сохранить часы попытки различных решений, вот конечный результат моих часов лужения.
Эти три решения вокруг Интернета в данный момент: rubysspi apserver cntlm
rubysspi только работает от машины Windows, AFAIK, поскольку это полагается на библиотеку Win32Api. Таким образом, если Вы находитесь на поле Windows, пытающемся пробегать прокси, это - решение для Вас. Если Вы находитесь на дистрибутиве Linux, Вам не повезло.
apserver, кажется, мертвый проект. Ссылка перечислила в сообщениях, я видел вывод к 404 страницам на SourceForge. Я ищу "apserver" по возвратам SourceForge ничто.
ссылка SourceForge для cntlm, что я видел перенаправления к http://cntlm.awk.cz/ , но это испытывает таймаут. Поиск на SourceForge поднимает эту ссылку, которая действительно работает: http://sourceforge.net/projects/cntlm/
После загрузки и конфигурирования cntlm мне удалось установить драгоценный камень через прокси, таким образом, это, кажется, лучшее решение для дистрибутивов Linux.
Если вы объявляете свой столбец с типом временной метки, вы в клевере:
>>> db = sqlite3.connect(':memory:', detect_types=sqlite3.PARSE_DECLTYPES)
>>> c = db.cursor()
>>> c.execute('create table foo (bar integer, baz timestamp)')
<sqlite3.Cursor object at 0x40fc50>
>>> c.execute('insert into foo values(?, ?)', (23, datetime.datetime.now()))
<sqlite3.Cursor object at 0x40fc50>
>>> c.execute('select * from foo')
<sqlite3.Cursor object at 0x40fc50>
>>> c.fetchall()
[(23, datetime.datetime(2009, 12, 1, 19, 31, 1, 40113))]
Видите? как int (для столбца, объявленного как целое число), так и datetime (для столбца, объявленного отметкой времени) выдерживают цикл приема-передачи с неизменным типом.
>>> db = sqlite3.connect(':memory:', detect_types=sqlite3.PARSE_DECLTYPES)
>>> c = db.cursor()
>>> c.execute('create table foo (bar integer, baz timestamp)')
<sqlite3.Cursor object at 0x40fc50>
>>> c.execute('insert into foo values(?, ?)', (23, datetime.datetime.now()))
<sqlite3.Cursor object at 0x40fc50>
>>> c.execute('select * from foo')
<sqlite3.Cursor object at 0x40fc50>
>>> c.fetchall()
[(23, datetime.datetime(2009, 12, 1, 19, 31, 1, 40113))]
Видите? как int (для столбца, объявленного как целое число), так и datetime (для столбца, объявленного отметкой времени) выдерживают цикл приема-передачи с неизменным типом.
>>> db = sqlite3.connect(':memory:', detect_types=sqlite3.PARSE_DECLTYPES)
>>> c = db.cursor()
>>> c.execute('create table foo (bar integer, baz timestamp)')
<sqlite3.Cursor object at 0x40fc50>
>>> c.execute('insert into foo values(?, ?)', (23, datetime.datetime.now()))
<sqlite3.Cursor object at 0x40fc50>
>>> c.execute('select * from foo')
<sqlite3.Cursor object at 0x40fc50>
>>> c.fetchall()
[(23, datetime.datetime(2009, 12, 1, 19, 31, 1, 40113))]
Видите? как int (для столбца, объявленного как целое число), так и datetime (для столбца, объявленного отметкой времени) выдерживают цикл приема-передачи с неизменным типом.
It turns out that sqlite3 can do this and it's even documented, kind of - but it's pretty easy to miss or misunderstand.
What I had to do is:
conn = sqlite3.connect(dbFilePath, detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
Put the type I wanted into the query - and for datetime, it's not actually "datetime", but "timestamp":
sql = 'SELECT jobid, startedTime as "[timestamp]" FROM job'
cursor = conn.cursor()
try:
курсор.execute (sql)
возвратите cursor.fetchall ()
Ну наконец то:
cursor.close ()
Если вместо этого я передам "datetime", оно будет игнорироваться, и я все равно получу строку обратно. То же, если я опущу кавычки.