Способ явной блокировки базы данных заключается в запуске транзакции, как описано в документации :
Когда к базе данных получают доступ несколько соединений, и один из процессов изменяет базу данных, база данных SQLite блокируется до тех пор, пока эта транзакция не будет зафиксирована.
Одним из способов инициирования транзакции является использование соединения в качестве диспетчера контекста :
import sqlite3
con = sqlite3.connect(...)
...
with con:
# Database is locked here
Также обратите внимание, что некоторые транзакции по умолчанию происходят :
По умолчанию модуль sqlite3 неявно открывает транзакции перед оператором языка изменения данных (DML) (т. Е. INSERT / UPDATE / DELETE / REPLACE) и неявно фиксирует транзакции перед оператором без DML, без запроса (т. Е. С чем-либо другим). чем ВЫБРАТЬ или вышеупомянутый).