Django의 QR 코드 생성기
python3.10 -m venv .
환경 활성화
source bin/activate
Django, Pillow 및 qrcode 설치
pip install Django Pillow qrcode
장고 프로젝트 시작
django-admin startproject core .
앱 만들기
python manage.py startapp qrcodeapp
settings.py 파일을 열고 생성된 앱을 설치된 앱에 추가합니다.
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'qrcodeapp', # add qrcodeapp app
]
생성된 모든 QR 코드 이미지를 저장할 미디어 디렉토리를 생성합니다. 이 미디어 디렉토리는 루트 디렉토리에 생성되어야 합니다.
이제 settings.py 파일에서 다음과 같이 미디어 디렉토리를 지정하십시오.
# settings.py
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'
이제 qrcodeapp의 views.py를 열어 QR 코드를 생성하는 로직을 작성한 다음 템플릿에 렌더링합니다.
# qrcodeapp/views.py
from django.shortcuts import render
from django.conf import settings
from qrcode import *
import time
def qr_gen(request):
if request.method == 'POST':
data = request.POST['data']
img = make(data)
img_name = 'qr' + str(time.time()) + '.png'
img.save(settings.MEDIA_ROOT + '/' + img_name)
return render(request, 'index.html', {'img_name': img_name})
return render(request, 'index.html')
루트 디렉터리에 템플릿 디렉터리를 만들고 다음과 같이 settings.py에 경로를 지정합니다.
# settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [ BASE_DIR / 'templates' ], # this
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
index.html을 열고 다음 코드를 추가합니다.
<!-- templates/index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>QR code generator</title>
<style>
*{
box-sizing: border-box;
font-family: sans-serif;
}
main{
width: 100%;
max-width: 600px;
margin: 0 auto;
}
input{
width: 100%;
padding: 10px;
margin-bottom: 10px;
border: 1px solid #ccc;
border-radius: 4px;
}
button{
width: 100%;
max-width: 200px;
padding: 10px;
margin-bottom: 10px;
border: 1px solid #ccc;
border-radius: 4px;
background-color: #eee;
}
button:hover{
background-color: #ddd;
}
.qr-img{
width: 100%;
max-width: 300px;
margin: 0 auto;
}
.qr-img img{
width: 100%;
}
</style>
</head>
<body>
<main>
<h1>
QR code generator
</h1>
<form method="post">
{% csrf_token %}
<input type="text" name="data" id="data" placeholder="write something or enter url">
<button>Generate</button>
</form>
<div class="qr-img">
{% if img_name %}
<img src="/media/{{ img_name }}" alt="qr code">
{% endif %}
</div>
</main>
</body>
</html>
qrcodeapp 디렉토리에 새 urls.py 파일을 만들고 다음 코드를 추가합니다.
# qrcodeapp/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.qr_gen, name='qr_gen'),
]
이제 메인 프로젝트의 urls.py에 이 경로를 포함합니다.
# core/urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('qrcodeapp.urls')),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
이제 모든 것이 완료되었습니다. 다음 명령을 사용하여 서버를 실행하십시오. 당신은 당신의 환경에 확인해야합니다.
python manage.py runserver
이제 브라우저에서 http://127.0.0.1:8000을 열고 무언가를 입력하고 qr 코드를 생성하십시오.
고맙습니다 :)
소스 코드: GitHub
트위터에서 나를 찾으세요:
Reference
이 문제에 관하여(Django의 QR 코드 생성기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/soniarpit/qr-code-generator-in-django-5fe6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)