SQLAlchemy Core - подключение к базе данных
В предыдущей главе мы обсудили язык выражений в SQLAlchemy. Теперь перейдем к шагам, связанным с подключением к базе данных.
Класс двигателя подключает Pool and Dialect together предоставить источник базы данных connectivity and behavior. Объект класса Engine создается с использованиемcreate_engine() функция.
Функция create_engine () принимает базу данных как один аргумент. База данных не требуется нигде определять. Стандартная форма вызова должна отправлять URL-адрес в качестве первого позиционного аргумента, обычно это строка, указывающая диалект базы данных и аргументы подключения. Используя приведенный ниже код, мы можем создать базу данных.
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)
Для MySQL databaseиспользуйте следующую команду -
engine = create_engine("mysql://user:pwd@localhost/college",echo = True)
Чтобы конкретно упомянуть DB-API для подключения URL string принимает следующий вид -
dialect[+driver]://user:password@host/dbname
Например, если вы используете PyMySQL driver with MySQLиспользуйте следующую команду -
mysql+pymysql://<username>:<password>@<host>/<dbname>
В echo flag- это ярлык для настройки ведения журнала SQLAlchemy, который выполняется с помощью стандартного модуля ведения журнала Python. В следующих главах мы изучим все сгенерированные SQL-запросы. Чтобы скрыть подробный вывод, установите для атрибута echo значениеNone. Другие аргументы функции create_engine () могут зависеть от диалекта.
Функция create_engine () возвращает Engine object. Некоторые важные методы класса Engine:
Sr. No. | Метод и описание |
---|---|
1 | connect() Возвращает объект подключения |
2 | execute() Выполняет конструкцию оператора SQL |
3 | begin() Возвращает диспетчер контекста, доставляющий соединение с установленной транзакцией. После успешной операции транзакция фиксируется, в противном случае выполняется откат |
4 | dispose() Удаляет пул соединений, используемый Engine |
5 | driver() Имя драйвера диалекта, используемого движком |
6 | table_names() Возвращает список всех имен таблиц, доступных в базе данных |
7 | transaction() Выполняет заданную функцию в границах транзакции |