← Nazad na blog
VI i automatizacija2 min čitanja

Automatizacija QR kodova u Pythonu: biblioteka ili REST API?

Slika sa Unsplasha

Šta pruža Python biblioteka

Ko želi da pravi QR kodove u Pythonu, naći će nekoliko besplatnih biblioteka. Od teksta prave sliku, često i SVG, lokalno i bez spoljnog servisa. Za etikete sa serijskim brojevima, interne dokumente ili pristup Wi-Fi mreži to je upravo pravo rešenje.

Gde statične slike dolaze do granice

Tako napravljen QR kod je statičan, sadržaj je u samom obrascu. Ako se cilj promeni zbog novog lansiranja sajta, ako se greška u kucanju primeti tek posle štampe ili ako želiš da znaš koliko se često skenira, takav kod ne pomaže. Za to postoje dinamički QR kodovi: Same-QR čuva cilj iza kratke adrese koja se ne menja, broji skeniranja i noću proverava da li je svaki cilj dostupan.

Dinamički QR kodovi preko REST API-ja

API se nalazi na https://sameqr.com/api/v1. U kontrolnoj tabli, u odeljku Nalog, pod „Pristup za CLI, skripte i agente“, napravi ključ, „čitanje + pisanje“ za pravljenje, i postavi ga kao promenljivu okruženja SAMEQR_API_KEY. Ovaj primer koristi samo standardnu biblioteku:

import json, os, urllib.request

API = "https://sameqr.com/api/v1"
KEY = os.environ["SAMEQR_API_KEY"]

def rufe(methode, weg, daten=None):
    req = urllib.request.Request(
        API + weg, method=methode,
        data=json.dumps(daten).encode() if daten else None,
        headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"})
    with urllib.request.urlopen(req) as r:
        return json.load(r)

code = rufe("POST", "/qr", {"name": "Anleitung Modell A", "targetUrl": "https://example.com/anleitung-a"})
print(code["id"])

Ako API odgovori greškom, urlopen baca izuzetak. Sadržaj uvek ima objekat error sa poljima status, code i message. Obradi ga umesto da skripta slepo nastavi dalje.

Postupak iz prakse

Proizvođač na svako pakovanje štampa QR kod koji vodi do uputstva:

  • Skripta čita listu proizvoda iz CSV datoteke.
  • Za svaki novi proizvod pravi QR kod i pamti njegovu oznaku pored broja artikla.
  • Kada izađe nova verzija uputstva, preko PATCH-a na /qr/<id> menja samo cilj. Za to joj treba ključ sa pravom „puno“ i zaglavlje X-Confirm sa pročitanim stanjem.
  • Druga skripta sa ključem za čitanje jednom mesečno preuzima brojeve skeniranja.

Uračunaj ograničenja: najviše 10 promena cilja na sat i 30 na dan preko API-ja, 120 upita u minuti po ključu, na sat 60 u besplatnom paketu, 300 u paketu Start, 1.000 u paketu Pro i 5.000 u paketu Agentur. Kod 429 sačekaj sekunde navedene u zaglavlju Retry-After.

Ključ bezbedno u skripti

  • Nikada ne upisuj ključ u .py datoteku, već ga čitaj iz okruženja.
  • Za skripte koje samo čitaju koristi ključ „samo čitanje“.
  • Za svaku skriptu poseban ključ sa jasnim imenom i odgovarajućim rokom važenja.

Zaključak: Zašto Same-QR

Za statične QR kodove biblioteka je dovoljna. Čim se štampa, Same-QR je bolja osnova: jednostavan REST API u svakom paketu, razumljive greške, zaštita od istovremenog prepisivanja i ciljevi koje možeš da promeniš i posle štampe.

Počni odmah: registruj se besplatno na sameqr.com, 20 dinamičkih QR kodova je trajno besplatno. API, CLI i MCP server dostupni su u svakom paketu, a dokumentacija se nalazi na sameqr.com/entwickler.

Napravi dinamične QR kodove besplatno
Kreni sa 20 dinamičnih QR kodova koji su zauvek besplatni. Bez pretplate, bez kreditne kartice.
Kreni besplatno →

Često postavljana pitanja

Treba li mi poseban Python paket servisa Same-QR?

Ne. REST API radi sa standardnom bibliotekom ili bilo kojom bibliotekom za veb zahteve.

Mogu li da mešam statične i dinamičke QR kodove?

Da. Za nepromenljive sadržaje dovoljan je statičan QR kod, a za sve odštampano gde je promena moguća uzmi dinamički.

Gde mogu da dobijem datoteku za štampu?

U kontrolnoj tabli kao PNG, SVG ili PDF, ili preko API-ja istim ključem. Načine opisuje dokumentacija na sameqr.com/entwickler.

Bilten

Novi članci direktno u tvoj inboks

Saveti o dinamičnim QR kodovima, novosti, bez spama. Odjava u bilo kom trenutku.

Prijavom pristaješ da primaš bilten. Saglasnost možeš da povučeš u bilo kom trenutku preko linka za odjavu u svakoj poruci.

Nastavi sa čitanjem