Автор оригинала: Robin Andrews.
В этом уроке вы узнаете, как создать основной сценарий входа с Python и SQLite Отказ SQLite идеально подходит для небольших приложений Python, управляемой данными. Это легкая, автономная, неверная система управления базами базы данных. Вы можете узнать больше о SQLite здесь: Базы данных Python – SQLite Tutorial Part 1 Отказ
Чтобы следить с этим уроком, вам понадобится бесплатная часть программного обеспечения, называемого Браузер БД для SQLite Отказ Вы должны загрузить и установить эту очень полезную программу сейчас, прежде чем продолжить.
Что подходит в этом уроке:
- Создать
ПользователиТаблица - Добавить комбинации имени пользователя/пароля
- Подключитесь к базе данных SQLite из Python
- Привлечь результаты из базы данных с помощью Python
- Используйте F-струны для безопасного интерполяции переменных в операторы SQL
- Проверьте, является ли имена комбинации имени пользователя/пароля.
Давайте погрузиться в.
Создание таблицы пользователей с использованием браузера БД для SQLite
- Откройте Браузер БД для SQLite
- Создайте новую базу данных и сохраните его как
data.dbОтказ - Перейти к
Выполнить SQLВкладка и введите (вставить, если вы уже SQL Ninja) следующееSQLкод:
CREATE TABLE IF NOT EXISTS "users" (
"username" TEXT,
"password" TEXT
);
INSERT INTO "users" VALUES ('boss','1234');
INSERT INTO "users" VALUES ('admin','password');
Примечание. В производственном приложении вы никогда не будете хранить незашифрованные пароли в базе данных. Вместо этого вы бы использовали Hashed и соленые версии – не беспокоитесь о том, хотя, если эти концепции не знакомы. Идея проста – незашифрованные пароли, хранящиеся в базе данных, не являются безопасными.
В качестве альтернативы вы можете создать новую базу данных в браузере БД и вручную создать таблицу с помощью GUI.
Убедитесь, что вы пишете изменения в базе данных.
Вы делаете это, выбрав опцию с панели инструментов. Теперь проверьте данные и структуру и получите немного знакомые с интерфейсом, если вы еще не найдены.
Доступ к базе данных SQLite из Python
Далее создайте файл Python в том же каталоге, что и data.db Отказ Добавьте следующий код и запустите его:
import sqlite3 as sql
con = sql.connect("data.db")
cur = con.cursor()
statement = "SELECT username, password FROM users"
cur.execute(statement)
print(cur.fetchall())
Вы должны получить этот вывод:
[('boss', '1234'), ('admin', 'password')]
Примечание: что такое Cur ? Подумайте об этом как об этом, как голова чтения/записи на CD-проигрывателе или подобное. Здесь вы можете увидеть, что все записи в таблице возвращаются CUR.Fetchall () Отказ
Пара других удобных функций, которые похожи:
Cur.fetchone (), что вернется только один ряд из запроса SQLCur.fetchone () [0], что вернется только первый элемент в первом ряду.
Если бы вы использовали Печать (cur.fetchone () [0]) вместо Печать (CUR.Fetchall ()) в коде выше, вывод просто будет Босс Отказ
Проверка учетных данных входа с Python и SQLite
Теперь у нас есть большинство ингредиентов, чтобы проверить данные для входа в систему, используя Python и Sqlite.
Подходящий запрос SQL будет:
f “Выберите имя пользователя из пользователей, где и;
Теперь у нас есть ингредиенты для простого сценария Python, чтобы проверить, существует ли комбинация имени пользователя/паролей в базе данных и напечатает сообщение пользователя соответственно. Я жестко закодировал значения для Имя пользователя и пароль , но они могут прийти с пользовательского ввода, используя вход () Или из веб-формы, если вы создаете веб-приложение Python.
import sqlite3 as sql
username = "boss"
password = "1234"
con = sql.connect("data.db")
cur = con.cursor()
statement = f"SELECT username from users WHERE username='{username}' AND Password = '{password}';"
cur.execute(statement)
if not cur.fetchone(): # An empty result evaluates to False.
print("Login failed")
else:
print("Welcome")
В этом уроке мы узнали, как создать таблицу в базе данных SQLite и использовать Python, чтобы получить доступ к базе данных и проверять действительное имя пользователя/комбинации паролей. Я надеюсь, что вы нашли это полезным.
Счастливые вычисления.