Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 30, 2008 11:15:23

Omro
От:
Зарегистрирован: 2008-12-14
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Примеры SqLite

Очень хороша эта бд, действительно удобна. Но вот вопрос - есть ли исходники какого-либо sqlite - менеджера, написанного на питоне? Я не понимаю, как делать подстановки переменных в случае например если хочется Create table сделать со своим названием.

Думаю, ещё возникнут мелкие вопросы, так-что именно мини менеджер бд подошёл-бы, дабы расковырять. Интуит читал, руководство тоже, но как делать insert table со своим значением не понял :-)

Заранее спасибо!!!



Офлайн

#2 Дек. 30, 2008 12:01:58

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Примеры SqLite

sqlitebrowser есть
или https://addons.mozilla.org/en-US/firefox/addon/5817

а вообще есть куча примеров, посмотри например тесты для sqlite

что такое “create table со своими названиями” не осилил

Офлайн

#3 Дек. 30, 2008 12:16:08

Omro
От:
Зарегистрирован: 2008-12-14
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Примеры SqLite

Create table с названием-переменной уже осилил. XD Эту тузлу для ФФ использовал уже, очень удобно что лис и таким оброс…
Стоит что-нибудь спросить, как попадается самому нужный док. А перед этим несколько часов поиска XD
Всё равно спасибо!



Офлайн

#4 Дек. 30, 2008 15:06:09

Omro
От:
Зарегистрирован: 2008-12-14
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Примеры SqLite

Стоп, опять я что-то сглупил.

c.execute(u'INSERT INTO "main".%s ("begin") VALUES (%s)'%(st, sl))
Почему здесь не срабатывает юникод-строка?



Офлайн

#5 Дек. 30, 2008 19:24:03

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Примеры SqLite

во-первых некошерно юзать форматирование строк в SQL запросах, это прихоти РНР пhограммистов))
там где % запятую надо ставить
и покажи как задаётся st и sl

Офлайн

#6 Янв. 1, 2009 19:30:58

Omro
От:
Зарегистрирован: 2008-12-14
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Примеры SqLite

Обычные строки unicode:

st = u"Строка"
sl = u"Слово"
Например эти.
Хорошо, если некошерно. Как тогда тогда кошерно вбивать переменные в sql-запрос?)



Офлайн

#7 Янв. 1, 2009 21:07:56

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Примеры SqLite

Omro
Обычные строки unicode:
st = u"Строка"
sl = u"Слово"
Например эти.
Вот работающий пример. Результат выводится по-русски.
# -*- coding: utf-8 -*-
import sqlite3
conn = sqlite3.connect(“:memory:”)
conn.execute(“create table test(field1, field2)”)
conn.execute(“insert into test(field1, field2) values(?,?)”, (u'тест один', u'тест два'))
field1, field2 = conn.execute(“select * from test”).fetchone()
print field1, field2
Хорошо, если некошерно. Как тогда тогда кошерно вбивать переменные в sql-запрос?)
Читайте здесь: http://docs.python.org/library/sqlite3.html
Там почти в самом начале. Можете поискать по фразе ‘SQL injection attack’



Офлайн

#8 Янв. 1, 2009 22:42:12

Omro
От:
Зарегистрирован: 2008-12-14
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Примеры SqLite

Базу данных изначально продумано организовать на множество таблиц (называемых динамически) в ней.
А как быть с:

conn.execute("create table ?(?, ?)", ("test", "field1", "field2"))
Код гораздо чище, спасибо! Про инъекции sql-кода ясно, но прога для хорошего друга, ему самому себе некуда вводить sql - инъекцию, да и в висте легче сныкать сам файл)))



Офлайн

#9 Янв. 2, 2009 06:56:46

pyJee
От:
Зарегистрирован: 2009-01-01
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Примеры SqLite

про sqlite можно почитать, например в доках питона :)
http://docs.python.org/library/sqlite3.html



Офлайн

#10 Янв. 2, 2009 10:40:26

Omro
От:
Зарегистрирован: 2008-12-14
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

Примеры SqLite

Спасибо, в этой теме уже советовали эту ссылку. Ну да, не всё быстро схватываю, но есть и хуже=D
Я просто спросил, знает ли кто конкретный пример как поправить.
БД нужно строит динамически, в этом и идея.
Но за скобкой вопрос, потом в скобке питон усилено игнорит. :/



Отредактировано (Янв. 2, 2009 10:40:47)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version