Python
 Computer >> コンピューター >  >> プログラミング >> Python

DjangoのQRコード生成ウェブサイト


ウェブサイトでURLのQRコードを生成する必要がある場合があります。 QRコードは、検証、Webサイトへのログイン、Webサイトの開設など、さまざまな目的でスキャンされます。この記事では、それを実装する方法を説明します。 qrgeneratorを作成します Djangoのウェブサイト。

Djangoプロジェクトとアプリを作成します。 メディアを作成する プロジェクトとアプリの同じレベルにあるフォルダ。

settings.pyに移動します プロジェクトフォルダにアプリ名をINSTALLED_APPSに追加し、これを下部に追加します-

MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'

ここで、メディアを設定します QRコードを保存するフォルダ。

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 私のアプリ名です。

次に、2つのライブラリをインストールします: 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コードを返しました。

「テンプレート」を作成します アプリディレクトリ内のフォルダ(移行フォルダと同じレベル)にファイルを追加します "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)

ここでは、引数を取る独自のsaveメソッドを定義しました。 qrcodeを使用しました ライブラリを使用してQRコードを生成し、キャンバスを使用して白黒にしました。次に、そのQRコードをキャンバスに追加し、画像として保存しました。画像をメディアフォルダに保存し、モデルインスタンスとして追加しました。

これですべてが設定され、出力の確認に進むことができます。

出力

DjangoのQRコード生成ウェブサイト


  1. Djangoでのクライアント側の画像のズームと回転

    場合によっては、画像を回転またはズームする必要があります。このような場合、クライアント側の画像ズームライブラリを使用して、htmlファイルにズーム-回転するjquery機能を追加します。 jqueryjsとcssをhtmlファイルにロードする必要がありました。 Djangoプロジェクトとアプリを作成します。 URLを設定する INSTALLED_APPSにアプリを追加するなどの基本的な操作を行います。 django-client-side-image-croppingをインストールします ライブラリ pip install django-client-side-image-cropp

  2. Web サイトから Excel にデータをインポートする方法

    World Wide Web には膨大な有用なデータが含まれていることはよく知られています。ただし、何らかの分析を行う前に、データを Microsoft Excel にインポートする必要があります。この種のタスクを完了するために使用できる方法が 2 つあります。 Web から外部データを手動で取得 この Web ページからトップの金儲け映画の収益をダウンロードしたいとします。ここでは、簡単に行う方法を示します。 Microsoft Excel を開き、[データ] をクリックします。 タブの 外部データの取得 グループで、[ウェブから] をクリックします . 新しい Web クエリの後 ダイ