Comments 14
Я дико прошу меня извинить, но почему Вы не хотите создавать базу как всё что в ней в самой программе?
Это же удобней и даёт знания для создания базы новичку. А то подумают что базу можно создавать только вручную через специальное ПО, хотя это совсем и вообще не так.
Это же удобней и даёт знания для создания базы новичку. А то подумают что базу можно создавать только вручную через специальное ПО, хотя это совсем и вообще не так.
Возможно я не правильно понял что вы написали, но как вы собираетесь создавать базу данных в самой программе, не подключая сторонних библиотек или через «специальное ПО»?
создавать базу данных в самой программе, не подключая сторонних библиотек или через «специальное ПО»
import sqlite3
sqlite3.connect('db/database.db')
Но человек наверное имел ввиду добавить запрос на создание таблиц. Хотя вопрос открытый считать ли sqlte3 специальным ПО?)
Но эта фраза
и у вас нет средства для работы с БД, то необходимо установить утилиту
и правда звучит странно в контексте python и sqlite. Тем более что утилитка для работы с этой базой через cli и в дистрибутиве может уже существовать.
Тоже подумал об этом. Подвешу код попроще (можно и класс нарисовать) под ваш комментарий.
import sqlite3
from pathlib import Path
def sqlite_connect():
conn = sqlite3.connect("database.db", check_same_thread=False)
conn.execute("pragma journal_mode=wal;")
return conn
def init_sqlite():
conn = sqlite_connect()
c = conn.cursor()
c.execute('''CREATE TABLE test (id integer primary key, user_id integer, user_name text, user_surname text, username text)''')
conn.commit()
conn.close()
return
db = Path("./database.db")
try:
db.resolve(strict=True)
except FileNotFoundError:
print("Database not found, trying to create a new one.")
try:
init_sqlite()
except Exception as e:
print("Error when creating database : ", e.__repr__(), e.args)
pass
else:
print("Success.")
У самого была статья с похожим подключением, только там я использовал MySQL. Сейчас есть множество библиотек(первое что пришло в голову — Pillow, SQLAlchemy), которые позволяют работать с базами данных намного удобнее и продуктивнее. Собирать миграции оттуда намного удобнее(если вам очень надо запилить свой гениальный или быстрый запрос, то эти же миграции можно спокойно редактировать). В итоге при помощи этих библиотек вы можете писать базы данных на более понимаемом для себя языке, нежели каждый раз гуглить, как сделать тот или иной запрос(хотя конечно и библиотеку читать придется, тем не менее это удобнее). Возможно какие-то проекты и имеют смысл использовать библиотеки для прямой работы с бд, но в данном случае для какого-нибудь бота вполне подойдет хорошая ORM.
а это статья о подключении бд к боту или таки работа с ней в питоне? зачем это все?
Вопрос, как правильно организовать разработку (учитывая что весь код лежит на github) так чтобы каждый раз не спирать token перед тем как класть код в репозиторий? В один прекрасный момент можно забыть это сделать.
Сам сталкиваюсь с такой проблемой). Даже не знаю как решить. Всегда стираю.
Чем вас переменные окружения не устраивают?
А в prod контуре вы каждый раз новый токен дописываете после чекаута?
А в prod контуре вы каждый раз новый токен дописываете после чекаута?
* токен держать в файле конфигураций, аля config.cnf (ini\yaml\etc)
* рядом положить такой же файл config.cnf.example с тестовыми настройками
* в .gitignore добавить config.cnf
* спокойно коммитить
* рядом положить такой же файл config.cnf.example с тестовыми настройками
* в .gitignore добавить config.cnf
* спокойно коммитить
Sign up to leave a comment.
Подключаем Sqlite3 к Telegram боту