Привет, я создаю веб-приложение, используя Flask и Sqlite3.У меня были проблемы с подключением базы данных некоторое время, и я не работал, когда я писал это:
#version 1
app.config['SQLALCHEMY_DATABASE_URI'] =
'sqlite:////C:/Users/Giang/PyCharmProjects/FlaskWebBlog/FlaskWebBlog/site.db'
Python выдал мне ошибку в работе: не могу открыть базу данных, потому что я написал с 4 слешами после двоеточия.Прочитав документацию по sqlalchemy и выполнив так много испытаний, я обнаружил, что это работает:
#with 3 slashes, version 2
app.config['SQLALCHEMY_DATABASE_URI'] =
'sqlite:///C:/Users/Giang/PyCharmProjects/FlaskWebBlog/FlaskWebBlog/site.db'
или это с 4 слэшами, но без C:
#version 3
app.config['SQLALCHEMY_DATABASE_URI'] =
'sqlite:////Users/Giang/PyCharmProjects/FlaskWebBlog/FlaskWebBlog/site.db'
Я запутался, потому что на основедокументация о соединительных строках: спецификация файла для базы данных SQLite берется как часть базы данных URL.Обратите внимание, что формат URL-адреса SQLAlchemy:
driver://user:pass@host/database
Это означает, что используемое имя файла начинается с символов справа от третьего слеша.Таким образом, подключение к относительному пути к файлу выглядит следующим образом:
# relative path
e = create_engine('sqlite:///path/to/database.db')
Абсолютный путь, который обозначается начиная с косой черты, означает, что вам нужно четыре косых черты:
# absolute path
e = create_engine('sqlite:////path/to/database.db')
ТАК в соответствии с этимЕсли я использую абсолютный путь, мне нужно 4 слеша, но когда я сделал это с версией 1, Python дал мне ошибки.И когда я использовал 3 слеша для абсолютного пути в версии 2, это сработало.
Так что я действительно запутался.Может кто-нибудь объяснить мне, почему?Я был бы очень признателен.Спасибо