บางครั้งเราจำเป็นต้องสร้างรหัส QR ของ URL ในเว็บไซต์ของเรา โค้ด QR จะถูกสแกนเพื่อตรวจสอบ เข้าสู่ระบบเว็บไซต์ เปิดเว็บไซต์ และอื่นๆ อีกมาก ในบทความนี้เราจะมาดูวิธีใช้งานกัน เรากำลังจะสร้าง qrgenerator เว็บไซต์ในจังโก้
ตัวอย่าง
สร้างโปรเจ็กต์ Django และแอพ สร้างสื่อ โฟลเดอร์ในระดับเดียวกันของโปรเจ็กต์และแอป
ไปที่ settings.py ในโฟลเดอร์โครงการและเพิ่มชื่อแอปใน INSTALLED_APPS และเพิ่มที่ด้านล่าง -
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/') MEDIA_URL = '/media/'
ที่นี่เราตั้งค่าสื่อ .ของเรา โฟลเดอร์ที่เราจะเก็บ QR code ไว้
ใน 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)
ที่นี่เรากำหนด URL ของแอปและ URL โฟลเดอร์สื่อ qrgenerator คือชื่อแอปของฉัน
ตอนนี้ติดตั้งสองไลบรารี:PIL คิวอาร์โค้ด .
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 ทั้งหมดของเรา
สร้าง "เทมเพลต" โฟลเดอร์ในไดเรกทอรีของแอป (ที่โฟลเดอร์การย้ายข้อมูลระดับเดียวกัน) และเพิ่มไฟล์ "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>
ที่นี่เราสร้างช่องป้อนข้อมูลเพื่อนำ URL และส่งไปยังส่วนหลัง ด้านล่าง , เราวนผ่านแต่ละอ็อบเจ็กต์โค้ด QR และแสดงเป็นรูปภาพ
ไปที่ 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 ห้องสมุดเพื่อสร้างรหัส QR จากนั้นเราใช้ผืนผ้าใบเพื่อทำให้เป็นขาวดำ จากนั้นเราก็เพิ่มรหัส QR นั้นลงบนผืนผ้าใบและบันทึกเป็นรูปภาพ เราบันทึกรูปภาพในโฟลเดอร์สื่อและเพิ่มเป็นอินสแตนซ์ของโมเดล
ตอนนี้ ทุกอย่างได้รับการตั้งค่าแล้ว และคุณสามารถดำเนินการตรวจสอบผลลัพธ์ได้
ผลลัพธ์