Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

Руководство по SQLite Python [Часть 1]

16 июля 2015 г. Archy Просмотров: 35322 RSS 2
SQLite , , , ,

Руководство по SQLite Python

Это руководство по программированию в Python используя базы данных SQLite. Оно покрывает основы программирования SQLite с помощью языка Python.

Необходимые условия

Чтобы работать с примерами их статьи, мы должны иметь установленный в системе язык Python, базу данных SQLite, привязку к языку pysqlite и инструмент командной строки sqlite3. Если мы имеем Python 2.5+, тогда нам необходимо только установить инструмент командной строки sqlite3. Как библиотека SQLite, так и привязка к языку pysqlite встроены в язык Python.

$ python
Python 2.7.3 (default, Jan  2 2013, 16:53:07) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> sqlite3.version
'2.6.0'
>>> sqlite3.sqlite_version
'3.7.13'

В оболочке, мы запускаем интерактивный интерпретатор Python. Мы можем проверить версию Python. В нашем случае, это Python 2.7.3. sqlite.version – это версия pysqlite (2.6.0), которая является привязкой языка Python к базе данных SQLite. Sqlite3.sqlite_version даёт нам версию библиотеки базы данных SQLite. В нашем случае, версией является 3.7.13.

Сейчас мы собираемся использовать инструмент командной строки sqlite3, чтобы создать новую базу данных.

$ sqlite3 test.db
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"

Мы предоставляем параметр для sqlite3 tool; test.db – это имя базы данных. Это файл на нашем диске. Если он присутствует, то он открывается. Если нет, он создаётся.

sqlite> .tables
sqlite> .exit
$ ls
test.db

Команда .tables выдает список таблиц в базе данных test.db. В настоящее время нет таблиц. Команда .exit завершает интерактивную сессию инструмента командной строки sqlite3. Unix-команда ls показывает содержание текущей рабочей папки. Мы можем видеть файл test.db. Все данные будут хранить в этом единственном файле.

Версия

В первом примере кода, мы получим версию базы данных SQLite.

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sqlite3 as lite
import sys
 
con = None
 
try:
    con = lite.connect('test.db')
    cur = con.cursor()    
    cur.execute('SELECT SQLITE_VERSION()')
    data = cur.fetchone()
    print "SQLite version: %s" % data                
    
except lite.Error, e:
    print "Error %s:" % e.args[0]
    sys.exit(1)
    
finally:
    if con:
        con.close()

В скрипте Python выше, мы подключаемся к предварительно созданной базе данных test.db. Мы выполняем SQL-запрос, который возвращает версию базы данных SQLite.

import sqlite3 as lite

Модуль sqlite используется для работы с базой данных SQLite.

con = None

Мы инициализируем переменную con как None. В случае, если бы мы не смогли произвести соединение с базой данных (к примеру, диск переполнен), мы не имели бы определенную переменную соединения. В конечном счёте, это приведёт к ошибке.

con = lite.connect('test.db')

Здесь мы соединяемся с базой данных test.db. Метод connect() возвращает объект соединения.

cur = con.cursor()    
cur.execute('SELECT SQLITE_VERSION()')

Мы получаем объект указателя на соединения. Мы вызываем метод execute() и выполняем SQL запрос.

Сайт ДокторСмм предлагает Вам приобрести просмотры на видео и трансляции в Инстаграм всего от 4 рублей! Вам будет доступен выбор наиболее привлекательного режима поступления ресурса, а также количества требуемого материала. Закажите просмотры по самой выгодной цене!
data = cur.fetchone()

Мы получаем данные. С этого момента мы извлекаем только одну запись и вызываем метод fetchone().

print "SQLite version: %s" % data

Мы выводим данные, которые мы получали в консоль.

except lite.Error, e:
    print "Error %s:" % e.args[0]
    sys.exit(1)

В случае исключения, мы выдаем сообщение об ошибке и выходим из скрипта с кодом ошибки 1.

finally:
    if con:
        con.close()

Финальным шагом, мы освобождаем ресурсы закрыв соединение.

Во втором примере, мы снова получаем версию базы данных SQLite. На этот раз мы будем использовать ключевое слово with.

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sqlite3 as lite
import sys
 
con = lite.connect('test.db')
 
with con:
    cur = con.cursor()    
    cur.execute('SELECT SQLITE_VERSION()')
    data = cur.fetchone()
    print "SQLite version: %s" % data

Скрипт возвращает текущую версию базы данных SQlite. С использованием ключевого слова with, код является более компактным.

with con:

С помощью ключевого слова with, интерпретатор Python автоматически освобождает ресурсы. К тому же, это обеспечивает лучшую обработку ошибок.

Быстрая продажа свое добро можно используя доску объявлений Енакиево которая имеет большую базу активных посетителей. Вы всегда сможете превратить угрожающие ненужные вам вещи в весьма неплохие деньги.

Комментариев: 2
  1. Лимонадный Ковбой | 2016-11-11 в 13:58:02

    >>Вы всегда сможете превратить угрожающие ненужные вам вещи в весьма неплохие деньги.

    Мои ненужные вещи мне не угрожают!

  2. Ну еперный театр, ну сайт python-3 а пишете в 2

    print "SQLite version: %s" % data

    Ну так же

    print("SQLite version: {0}".format(str(data)))

    Ну или

    print("SQLite version: {a}".format(a=str(data)))

Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)