Daily Python Projects

Daily Python Projects

Build a QR Code Generator with Python

Level: Beginner

Ardit Sulce's avatar
Ardit Sulce
Oct 29, 2025
∙ Paid

Your task for today is to create a QR code generator that converts text, URLs, or any string into a scannable QR code image that you can save and share.

Project Task

Create a QR code generator that:

  • Uses the qrcode library to generate QR codes

  • Takes user input (text, URL, or any string)

  • Creates a QR code image

  • Allows customization of QR code size and colors

  • Saves the QR code as a PNG image file

  • Displays the QR code in the console or saves it to a file

Bonus (optional):

  • Add different error correction levels

  • Create QR codes with custom colors (foreground and background)

  • Generate multiple QR codes from a list

  • Add logo/image in the center of QR code

  • Support for different image formats (PNG, SVG, etc.)

  • Generate QR codes for WiFi credentials

This project gives you hands-on practice with image generation, working with external libraries, file I/O, and creating practical utilities — essential skills for building useful Python applications.

Expected Output

QR Code Generator
=================

Enter text or URL to encode: https://www.python.org

Generating QR code...
QR code saved as: qr_code.png

[QR Code Image Display]
████████████████████████████████████████
████████████████████████████████████████
████ ▄▄▄▄▄ █▀█ █▄█▀█▄ █ ▄▄▄▄▄ ████
████ █   █ █▀▀▀█ ▀▀█▄▀█ █   █ ████
████ █▄▄▄█ █▀ █▀▀█ █▀█ █▄▄▄█ ████
████▄▄▄▄▄▄▄█▄▀ ▀▄█▄▀ █▄▄▄▄▄▄▄████
████▄▀▄ ▄▄▄ ▄▄▀▄▀ ▄▀▀ ▄█▄▄█▀▄████
████ █▀▄▀▄▄▄█▀█▀▀▄ ▀▀█▄▄ ██ ██████
█████▄▀█▀▀█▄▄▄█▀▄█▀▄▀▀▀█▄▄▄▄██████
████████████████████████████████████████

Successfully created QR code!

Join the Python & AI Builders Skool Community

Got questions to ask the author about this project? Join our Python & AI Builders community for weekly Python & AI videos and discussions:

skool.com/automateit

💻 View This Project in Jupyter Notebook

Become a premium member to access the working code in a Jupyter Notebook with the ready-to-run solution to get the output instantly and extend the code as you wish.

Click below to access the notebook (7-day risk-free trial):

Keep reading with a 7-day free trial

Subscribe to Daily Python Projects to keep reading this post and get 7 days of free access to the full post archives.

Already a paid subscriber? Sign in
© 2025 Ardit Sulce
Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture