हमें कभी-कभी अपनी वेबसाइट में किसी URL का QR कोड जेनरेट करना पड़ता है। सत्यापन, वेबसाइट लॉगिन, वेबसाइट खोलने और इस तरह की कई चीजों के लिए क्यूआर कोड स्कैन किए जाते हैं। इस लेख में, हम देखेंगे कि इसे कैसे लागू किया जाए। हम एक qrgenerator . बनाने जा रहे हैं Django में वेबसाइट।
उदाहरण
एक Django प्रोजेक्ट और एक ऐप बनाएं। एक मीडिया बनाएं प्रोजेक्ट और ऐप के समान स्तर पर फ़ोल्डर।
settings.py . पर जाएं प्रोजेक्ट फ़ोल्डर में और INSTALLED_APPS में ऐप का नाम जोड़ें और इसे नीचे जोड़ें -
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/') MEDIA_URL = '/media/'
यहां हमने अपना मीडिया . सेट किया है फ़ोल्डर जहां हम अपना क्यूआर कोड स्टोर करेंगे।
urls.py . में परियोजना निर्देशिका में, निम्नलिखित जोड़ें -
from django.contrib import admin
from django.urls import path,include
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
path('admin/', admin.site.urls),
path("",include("qrgenerator.urls"))
]
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT) यहां हमने ऐप यूआरएल और मीडिया फ़ोल्डर यूआरएल को परिभाषित किया है। qrgenerator मेरे ऐप का नाम है।
अब दो पुस्तकालय स्थापित करें:PIL एक qrcode ।
pip install PIL pip install qrcode
ऐप के urls.py . में -
from django.urls import path,include
from . import views
urlpatterns = [
path('', views.home,name='Home'),
] यहां हमने अपने होम व्यू को मुख्य url पर प्रस्तुत किया है।
view.py, . में निम्नलिखित पंक्तियाँ जोड़ें -
from django.shortcuts import render
from .models import QrCode
# Create your views here.
def home(request):
if request.method=="POST":
Url=request.POST['url']
QrCode.objects.create(url=Url)
qr_code=QrCode.objects.all()
return render(request,"home.html",{'qr_code':qr_code}) यहां हमने url लिया और फिर एक qrcode . बनाया मॉडल का ऑब्जेक्ट और GET हैंडलर में, हमने अपने सभी QR कोड लौटा दिए।
एक "टेम्पलेट्स" Create बनाएं ऐप निर्देशिका में फ़ोल्डर (माइग्रेशन फ़ोल्डर के समान स्तर पर) और एक फ़ाइल जोड़ें "home.html" इसमें निम्नलिखित पंक्तियों के साथ -
<!DOCTYPE html>
<html>
<head>
<title>tut</title>
</head>
<body>
<form method="POST">
{% csrf_token %}
<input type="url" placeholder="URL PLEASE" requir
ed name="url">
<button type= "submit" >get qrcode</button>
</form>
{% for qr in qr_code %}
<img src="{{qr.image.url}}"/><br>
{%endfor%}
</body>
</html> यहां हमने यूआरएल लेने और बैकएंड पर भेजने के लिए एक इनपुट बॉक्स बनाया है। नीचे , हम प्रत्येक क्यूआर कोड ऑब्जेक्ट के माध्यम से लूप करते हैं और उन्हें छवियों के रूप में दिखाते हैं।
models.py . पर जाएं और निम्न पंक्तियाँ जोड़ें -
from django.db import models
import qrcode
from PIL import Image, ImageDraw
from io import BytesIO
from django.core.files import File
# Create your models here.
import random
class QrCode(models.Model):
url=models.URLField()
image=models.ImageField(upload_to='qrcode',blank=True)
def save(self,*args,**kwargs):
qrcode_img=qrcode.make(self.url)
canvas=Image.new("RGB", (300,300),"white")
draw=ImageDraw.Draw(canvas)
canvas.paste(qrcode_img)
buffer=BytesIO()
canvas.save(buffer,"PNG")
self.image.save(f'image{random.randint(0,9999)}',File(buffer),save=False)
canvas.close()
super().save(*args,**kwargs) यहां हमने अपनी स्वयं की सेव विधि को परिभाषित किया है, जो तर्क लेती है। हमने qrcode . का उपयोग किया क्यूआर कोड जनरेट करने के लिए लाइब्रेरी और फिर हमने इसे ब्लैक एंड व्हाइट बनाने के लिए कैनवास का इस्तेमाल किया। फिर हमने उस क्यूआर कोड को कैनवास पर जोड़ा और उसे एक छवि के रूप में सहेजा। हमने छवि को मीडिया फ़ोल्डर में सहेजा है और इसे एक मॉडल उदाहरण के रूप में जोड़ा है।
अब, सब कुछ सेट हो गया है और आप आउटपुट की जांच के लिए आगे बढ़ सकते हैं।
आउटपुट
