Как создать бд на python
На этом шаге мы рассмотрим выполнение указанной операции .
Попробуем создать новую базу данных, для чего прежде всего запускаем командную строку, выбрав в меню Пуск пункт Выполнить . В открывшемся окне набираем команду cmd и нажимаем кнопку ОК — откроется черное окно с приглашением для ввода команд. Переходим в папку C:\book , выполнив команду (рисунок 1):
cd С:\book
В командной строке должно появиться приглашение:
С:\book>
По умолчанию в консоли используется кодировка ср866 . Чтобы сменить кодировку на ср1251 , в командной строке вводим команду:
chcp 1251
Теперь необходимо изменить название шрифта, т. к. точечные шрифты не поддерживают кодировку Windows 1251 . Щелкаем правой кнопкой мыши на заголовке окна и из контекстного меню выбираем пункт Свойства . В открывшемся окне переходим на вкладку Шрифт и в списке выделяем пункт Lucida Console (рисунок 1).
Рис.1. Выбор шрифта
На этой же вкладке также можно установить и размер шрифта. Нажимаем кнопку ОК , чтобы изменения вступили в силу. Для проверки правильности установки кодировки вводим команду chcp . Результат выполнения должен выглядеть так:
Рис.2. Кодовая стриница установлена верно
Для создания новой базы данных вводим команду:
C:\book>sqlite3.exe testdb.db
Если файл testdb.db не существует, новая база данных с этим именем будет создана и открыта для дальнейшей работы. Если такая база данных уже существует, то она просто откроется без удаления содержимого. Результат выполнения команды будет выглядеть так:
Рис.3. База данных testdb.db создана
Замечание . В примерах следующих шагов предполагается, что база данных была открыта указанным способом. Поэтому запомните способ изменения кодировки в консоли и способ создания (или открытия) базы данных.
Строка sqlite> здесь является приглашением для ввода SQL -команд. Каждая SQL -команда должна завершаться точкой с запятой. Если точку с запятой не ввести и нажать клавишу Enter , то приглашение примет вид . > . В качестве примера получим версию SQLite :
sqlite> SELECT sqlite_version();
Рис.4. Вывод версии базы данных
SQLite позволяет использовать комментарии. Однострочный комментарий начинается с двух тире и заканчивается в конце строки — в этом случае после комментария точку с запятой указывать не нужно. Многострочный комментарий начинается с комбинации символов /* и заканчивается комбинацией */ . Допускается отсутствие завершающей комбинации символов — в этом случае комментируется фрагмент до конца файла. Многострочные комментарии не могут быть вложенными. Если внутри многострочного комментария расположен однострочный комментарий, то он игнорируется. Пример использования комментариев:
Рис.5. Пример использования комментариев
Чтобы завершить работу с SQLite и закрыть базу данных, следует выполнить команду .exit или .quit .
Рис.7. Завершение работы с базой данных
На следующем шаге мы рассмотрим создание таблицы .
Урок #7 — Работа с базой данных. Создание модели
Начиная с данного урока мы приступаем к созданию базы данных и работы с ней. За урок мы создадим отдельное приложение, добавим модель для управления таблицей в БД, а также выполним настройку панели администратора.
Видеоурок
Создание таблиц
Джанго обладает замечательным функционалом по работе с базой данных и табличками в ней. Для создания новых таблиц принято использовать файл «models.py». В файле можно записать как один, так и несколько классов, каждый из которых будет выполнять роль определенной таблицы в базе данных.
Создание полей
Для описания полей внутри таблицы необходимо прописать переменные внутри классов. В каждую переменную устанавливается определенное значение, что соответсвует типу устанавливаемых данных в поле таблицы.
Информацию по поводу полей, а также таблиц в Джанго можно прочитать по этой ссылке .
Язык запросов SQL
При работе с базой данных вам необходимо уметь использовать язык запросов SQL. В Джанго можно не прописывать явно SQL команды, но знать и уметь работать с языком SQL обязательно. Вы можете детально ознакомиться с языком SQL в нашем курсе « Уроки SQL для начинающих ».
Магический метод
При получении объекта из базы данных всегда возвращается ID записи. С такой информацией особо ничего не сделать, поэтому лучше в классе модели дописывать магический метод «__str__». В нём можно указать какое значение будет возвращается при получении объекта из БД.
В методе ниже указано, что будет возвращаться значение из поля «title»:
def __str__(self): return self.title
Python Django | Урок 2 — Создание базы данных, введение в модели.
Как стать программистом? Python, Java, FrontEnd или .NET – что выбрать?
PyCharm с нуля. Лучшая IDE для Python разработки
Как составить резюме, чтобы вас пригласили на собеседование
Создаём игру-бестселлер Тетрис на Python
Как правильно составить резюме для поиска работы в международной IT-компании
Пишем игру Танки 2D на Pygame
Как новичкам найти работу во время войны? Реальный опыт и отзывы
Как стать Full Stack Python разработчиком
Базовые инструменты для анализа данных на Python
Создание игры-шутера на Python с нуля
Это второй урок по курсу видео уроков Python Django. В этом уроке будет пример базовой настройки приложения, а так же создание и подключения приложения к базе данных. Посещайте видео блог ITVDN, где, несомненно, найдете для себя нужные и полезные уроки.
Покупай подписку с доступом ко всем курсам и сервисам
Библиотека современных IT знаний в удобном формате
Выбирай свой вариант подписки в зависимости от задач, стоящих перед тобой. Но если нужно пройти полное обучение с нуля до уровня специалиста, то лучше выбирать Базовый или Премиум. А для того чтобы изучить 2-3 новые технологии, или повторить знания, готовясь к собеседованию, подойдет Пакет Стартовый.
- Все видеокурсы на 3 месяца
- Тестирование по 10 курсам
- Проверка 5 домашних заданий
- Консультация с тренером 30 мин
- Все видеокурсы на 1 год
- Тестирование по 24 курсам
- Проверка 20 домашних заданий
- Консультация с тренером 120 мин
- Все видеокурсы на 6 месяцев
- Тестирование по 16 курсам
- Проверка 10 домашних заданий
- Консультация с тренером 60 мин
Шаг 4: Создание базы данных¶
Как было указано ранее, Flaskr это приложение с базой данных «под капотом», а если более точно, то приложение с системой на базе реляционной базы данных «под капотом». Такие системы нуждаются в схеме, которая сообщает им, как хранить информацию. Поэтому важно создать схему перед тем, как запустить в первый раз сервер.
Такая схема может быть создана с помощью перенаправления через канал (pipe) содержимого файла schema.sql команде sqlite3 следующим образом:
sqlite3 /tmp/flaskr.db schema.sql
Недостатком такого способа является необходимость наличия в системе команды sqlite3, которая в некоторых системах может отсутствовать. Также, здесь потребуется, чтобы мы указали путь к базе данных, что может привести к ошибкам. Хорошей идеей было бы добавить функцию, которая иициализировала бы для вашего приложения базу данных.
Чтобы это сделать, мы можем создать функцию с именем init_db , которая инициализирует базу данных. Позвольте, я сперва покажу вам код. Просто добавьте в flaskr.py эту функцию после функции connect_db :
def init_db(): with app.app_context(): db = get_db() with app.open_resource('schema.sql', mode='r') as f: db.cursor().executescript(f.read()) db.commit()
Итак, что же здесь происходит? Помните, как мы усваивали в предыдущем разделе, что контекст приложения создаётся всякий раз при появлении запроса? Здесь у нас пока ещё нет запроса, поэтому нам необходимо создать контекст приложения вручную. Без контекста приложения объект g не узнает, какому приложению он соответствует, ведь их может быть несколько!
Контекст приложения для нас устанавливает оператор with app.app_context() . В теле оператора with объект g будет проассоциирован с app . В конце оператора with ассоциация перестанет действовать, и будут запущены все функции разрыва контекста. Это значит, что после совершения действия соединение с базой данных будет разорвано.
Метод open_resource() объекта приложения является удобной функцией-помощником, которая откроет ресурс, обеспечиваемый приложением. Эта функция открывает файл из места расположения ресурсов (в нашем случае папка flaskr ), и позволяет вам из него читать. Мы используем её здесь для того, чтобы выполнить скрипт при установлении соединения с базой данных.
Объект соединения, который предоставляет SQLite может дать нам объект курсора. Для этого курсора существует метод для выполнения целого скрипта. В самом конце нам нужно лишь совершить (фиксировать) изменения. SQLite 3 и другие транзакционные базы данных не зафиксируют изменения, если вы явно об этом их не попросите.
Теперь мы можем из командной оболочки Python импортировать и вызвать эту функцию, тем самым создав базу данных:
>>> from flaskr import init_db >>> init_db()
Поиск и устранение возможных проблем
Если появилось исключение, что таблица не может быть найдена, проверьте, что вы назвали функцию init_db , и что имена ваших таблиц заданы корректным образом (проверьте, например, на отсутствие в именах ошибок, связанных с использованием единственного и множественного числа).
