Добро пожаловать в мир генераторов QR-кодов! Сегодня мы собираемся создать собственный генератор QR-кода WiFi, используя веб-фреймворк Flask и библиотеку qrcode. Но прежде чем мы начнем, давайте удостоверимся, что у нас есть все необходимое.
Во-первых, убедитесь, что у вас установлен Flask. Вы можете установить его, запустив pip install flask
в своем терминале. Далее нам нужно установить библиотеку qrcode. Вы можете сделать это, запустив pip install qrcode==6.0
. Это важный шаг, потому что он гарантирует, что мы используем правильную версию библиотеки, совместимую с остальной частью нашего кода.
Теперь, когда у нас есть все необходимое, давайте начнем с нашего кода! Начнем с импорта Flask, request и send_file из модуля flask, а также qrcode и BytesIO из модуля io.
from flask import Flask, request, send_file import qrcode from io import BytesIO
Далее мы создадим экземпляр класса Flask, который будем использовать для определения и запуска нашего веб-приложения.
app = Flask(__name__)
Теперь мы определим маршрут для нашего приложения с помощью декоратора @app.route. Этот маршрут будет обрабатывать запросы к конечной точке «/» и вызывать функцию generate_qr(), которую мы определим далее.
@app.route('/') def generate_qr():
Внутри функции generate_qr() мы создадим две переменные, ssid и password, в которых будут храниться имя и пароль для нашей сети Wi-Fi соответственно. Затем мы будем использовать эти переменные для создания строки в формате, который библиотека qrcode использует для кодирования информации WiFi в QR-код.
ssid = "Get Your Own Wifi" password = "ItIsMyWifi69" wifi_data = 'WIFI:S:{};T:WPA;P:{};;'.format(ssid, password)
Далее мы создадим экземпляр класса QRCode, который позволит нам сгенерировать QR-код с предоставленной нами информацией. Мы установим версию, исправление ошибок, размер окна и свойства границы для настройки QR-кода.
qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=5)
Затем мы добавим wifi_data в объект QR-кода и подгоним данные к QR-коду.
qr.add_data(wifi_data) qr.make(fit=True)
Мы создадим изображение QR-кода с черным и белым цветом fill_color и back_color соответственно.
img = qr.make_image(fill_color="black", back_color="white")
Теперь мы создадим объект BytesIO для хранения изображения в памяти и сохраним изображение в объекте BytesIO в формате PNG.
byteIO = BytesIO() img.save(byteIO, 'PNG')
Мы сбросим поиск к началу объекта byteIO и вернем файл изображения с MIME-типом «image/png».
byteIO.seek(0) return send_file(byteIO, mimetype='image/png')
Наконец, мы добавим проверку запуска приложения только в том случае, если скрипт запускается напрямую (а не импортируется как модуль).
if __name__ == '__main__': app.run(port=5000,debug=True)
Вот и все! Наш генератор QR-кода WiFi готов. Теперь вы можете запустить скрипт и посетить http://localhost:5000/, чтобы увидеть свой собственный QR-код для вашей сети WiFi.
С помощью этого удобного инструмента вы можете легко поделиться своей сетью Wi-Fi с друзьями и семьей, не раскрывая свой пароль. Просто помните, никогда не сообщайте свои пароли Wi-Fi никому, кому вы не доверяете. Удачи и удачного кодирования!
Полный код:
from flask import Flask, request, send_file import qrcode from io import BytesIO app = Flask(__name__) @app.route('/') def generate_qr(): ssid = "Get Your Own Wifi" password = "ItIsMyWifi69" wifi_data = 'WIFI:S:{};T:WPA;P:{};;'.format(ssid, password) qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=5) qr.add_data(wifi_data) qr.make(fit=True) img = qr.make_image(fill_color="black", back_color="white") byteIO = BytesIO() img.save(byteIO, 'PNG') byteIO.seek(0) return send_file(byteIO, mimetype='image/png') if __name__ == '__main__': app.run(port=5000,debug=True)