Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เว็บไซต์สร้างรหัส QR ใน Django


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

ตอนนี้ ทุกอย่างได้รับการตั้งค่าแล้ว และคุณสามารถดำเนินการตรวจสอบผลลัพธ์ได้

ผลลัพธ์

เว็บไซต์สร้างรหัส QR ใน Django