บางครั้งเราจำเป็นต้องสร้างรหัส 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 นั้นลงบนผืนผ้าใบและบันทึกเป็นรูปภาพ เราบันทึกรูปภาพในโฟลเดอร์สื่อและเพิ่มเป็นอินสแตนซ์ของโมเดล
ตอนนี้ ทุกอย่างได้รับการตั้งค่าแล้ว และคุณสามารถดำเนินการตรวจสอบผลลัพธ์ได้
ผลลัพธ์
