def get(self, request):
host = request.META['HTTP_HOST']
token = request.session.get("verification_token", str(uuid.uuid4()))
verification_token = VerificationToken()
verification_token.token = token
verification_token.expire_time = datetime.datetime.now() + datetime.timedelta(minutes=1)
verification_token.save()
data = "http://" + host + "/authorize?token=" + token
img = qrcode.make(data)
buf = StringIO()
img.save(buf)
image_stream = buf.getvalue()
response = HttpResponse(image_stream, content_type="image/png")
return response
python类make()的实例源码
def get_ssr_qrcode(request, node_id):
'''?????????ssr???'''
# ??????
ss_user = request.user.ss_user
user = request.user
# ??????
node = Node.objects.get(node_id=node_id)
# ??????????
if user.level < node.level:
return HttpResponse('?????????????????????')
ssr_link = node.get_ssr_link(ss_user)
ssr_img = qrcode.make(ssr_link)
buf = BytesIO()
ssr_img.save(buf)
image_stream = buf.getvalue()
# ????reponse
response = HttpResponse(image_stream, content_type="image/png")
return response
def get_ss_qrcode(request, node_id):
'''?????????ss???'''
# ??????
ss_user = request.user.ss_user
user = request.user
# ??????
node = Node.objects.get(node_id=node_id)
# ??????????
if user.level < node.level:
return HttpResponse('?????????????????????')
ss_link = node.get_ss_link(ss_user)
ss_img = qrcode.make(ss_link)
buf = BytesIO()
ss_img.save(buf)
image_stream = buf.getvalue()
# ????reponse
response = HttpResponse(image_stream, content_type="image/png")
return response
def gen_face_pay_qrcode(request):
'''?????????'''
try:
# ?seesion?????????
url = request.session.get('code_url', '')
# ?????????
record = AlipayRequest.objects.create(username=request.user,
info_code=request.session['out_trade_no'],
amount=request.session['amount'],)
# ??sessions??
del request.session['code_url']
del request.session['amount']
# ??ss???
img = qrcode.make(url)
buf = BytesIO()
img.save(buf)
image_stream = buf.getvalue()
# ????reponse
response = HttpResponse(image_stream, content_type="image/png")
return response
except:
return HttpResponse('wrong request')
def save(self, *args, **kwargs):
with ZipFile(self.apkfile, 'r') as myzip:
am = myzip.read('AndroidManifest.xml')
ap = axmlprinter.AXMLPrinter(am)
ax = minidom.parseString(ap.getBuff())
manifest = ax.getElementsByTagName('manifest')[0]
for (name, value) in list(manifest.attributes.items()):
if name == 'android:versionName':
self.version = value
elif name == 'package':
self.package = value
# http://stackoverflow.com/questions/7894897/django-saving-an-image-manually-to-an-imagefield-field
qrimage = qrcode.make('market://search?q=pname:%s' % self.package)
temp_handle = StringIO()
qrimage.save(temp_handle, 'png')
temp_handle.seek(0)
suf = SimpleUploadedFile('suf', temp_handle.read(), content_type='image/png')
# pylint: disable-msg=E1101
self.qrcodefile.save('save', suf, save=False)
# pylint: enable-msg=E1101
super(Product, self).save(*args, **kwargs)
def user_otp_qrcode(request):
uid = request.REQUEST.get('uid', '')
otp_type = request.REQUEST.get('type', 'users')
try:
if otp_type == 'users':
data = Users.objects.get(pk=uid)
otp = data.users_otp
email = data.users_email
else:
data = User.objects.get(pk=uid)
otp = UserProfile.objects.get(user=data).otp
email = data.email
tmp = "otpauth://totp/%s?secret=%s" % (email, otp)
img = qrcode.make(tmp)
buf = StringIO()
img.save(buf)
image_stream = buf.getvalue()
response = HttpResponse(image_stream, content_type="image/png")
# response['Last-Modified'] = 'Mon, 27 Apr 2015 02:05:03 GMT'
# response['Cache-Control'] = 'max-age=1'
return response
except Exception,e:
return HttpResponse()
def get(self, request):
"""
???????
"""
user = request.user
if user.two_factor_auth:
return error_response(u"?????????")
token = rand_str()
user.tfa_token = token
user.save()
image = qrcode.make(OtpAuth(token).to_uri("totp", settings.WEBSITE_INFO["url"], "OnlineJudgeAdmin"))
buf = StringIO.StringIO()
image.save(buf, 'gif')
return HttpResponse(buf.getvalue(), 'image/gif')
def get(self, request):
"""
???????
"""
user = request.user
if user.two_factor_auth:
return error_response(u"?????????")
token = rand_str()
user.tfa_token = token
user.save()
image = qrcode.make(OtpAuth(token).to_uri("totp", settings.WEBSITE_INFO["url"], "OnlineJudgeAdmin"))
buf = StringIO.StringIO()
image.save(buf, 'gif')
return HttpResponse(buf.getvalue(), 'image/gif')
def qr(message):
"""
Generates a QR code from given text.
Example::
/qrcode Hello there!
"""
if len(message.content) > 200:
raise CommandError("Text is too long to generate a QR code for.")
def execute():
old = qrcode.make(message.content, border=2)
new = Image.new("RGB", old.size, (255, 255, 255))
new.paste(old)
return new
im = await asyncio.get_event_loop().run_in_executor(None, execute)
return Response("", [ImageAttachment(im, "qr.png")])
def get_ss_qr(request):
if request.user.is_anonymous():
return JsonResponse({'error': 'unauthorized'})
if not hasattr(request.user, 'ss_user'):
return JsonResponse({'error': 'no linked shadowsocks account'})
ss_user = request.user.ss_user
if request.GET.get('nid'):
try:
node = Node.objects.get(pk=request.GET.get('nid'))
except Node.DoesNotExist:
return JsonResponse({'error': 'node not exist'})
else:
node = Node.objects.all().order_by('-weight')
if node:
node = node[0]
else:
return JsonResponse({'error': 'no node at all'})
password = '{}:{}@{}:{}'.format(node.method, ss_user.password, node.server, ss_user.port)
img = qrcode.make('ss://{}'.format(base64.b64encode(bytes(password, 'utf8')).decode('ascii')))
response = HttpResponse(content_type="image/png")
img.save(response)
return response
def get(self, request):
"""
???????
"""
user = request.user
if user.two_factor_auth:
return error_response(u"?????????")
token = rand_str()
user.tfa_token = token
user.save()
image = qrcode.make(OtpAuth(token).to_uri("totp", settings.WEBSITE_INFO["url"], "OnlineJudgeAdmin"))
buf = StringIO.StringIO()
image.save(buf, 'gif')
return HttpResponse(buf.getvalue(), 'image/gif')
def add_ticket_to_pdf(self, pdf, ticket, offset=0):
if offset < 10:
offset = offset * 75
# Generate and save the QR code temporarily
tmp_path = self.request.registry._settings["base_dir"] + "/data/tmp/"
qr_img = qrcode.make("id:" + ticket.__name__ + ":pay:" + ticket.payment.__name__ + ":owner:" + ticket.owner.profile.fullname + ":price:" + str(ticket.tick_type.cost) + ":type:" + ticket.tick_type.name)
qr_tmp_path = tmp_path + ticket.__name__ + ".png"
qr_img.save(qr_tmp_path, "PNG")
# Draw a ticket background if it exists
bg_path = self.request.registry._settings["base_dir"] + "/data/ticket_backer.png"
if os.path.isfile(bg_path):
pdf.image(bg_path, x=10, y=10 + offset, w=190, h=70, type='PNG')
# Draw the QR Code
pdf.image(qr_tmp_path, x=12, y=12 + offset, w=66, h=66, type='PNG')
pdf.set_font('Arial', 'B', 16)
pdf.set_text_color(0,0,0)
title = self.event_name
if len(title) > 30:
title = title[:30] + "..."
pdf.text(x=80, y=23 + offset, txt=title)
pdf.set_font('Arial', 'I', 13)
pdf.text(x=80, y=30 + offset, txt=PROP_KEYS.getProperty(self.request, PROP_KEYS.EVENT_DATE).strftime('%A %d %B %Y'))
pdf.set_font('Arial', '', 16)
pdf.text(x=80, y=37 + offset, txt=ticket.guest_info.fullname)
pdf.text(x=80, y=44 + offset, txt=ticket.tick_type.name)
pdf.text(x=80, y=52 + offset, txt=self.format_price(ticket.tick_type.cost))
pdf.set_font('Arial', '', 16)
pdf.set_text_color(150,150,150)
pdf.text(x=80, y=60 + offset, txt="Ticket ID: " + ticket.__name__)
pdf.text(x=80, y=68 + offset, txt="Payment ID:" + ticket.payment.__name__)
# Draw the ticket box outline
pdf.set_draw_color(100, 100, 100)
pdf.set_line_width(0.1)
pdf.rect(10, 10 + offset, 190, 70)
def test_basic(self):
qr = qrcode.QRCode(version=1)
qr.add_data('a')
qr.make(fit=False)
def test_large(self):
qr = qrcode.QRCode(version=27)
qr.add_data('a')
qr.make(fit=False)
def test_invalid_version(self):
qr = qrcode.QRCode(version=41)
self.assertRaises(ValueError, qr.make, fit=False)
def test_overflow(self):
qr = qrcode.QRCode(version=1)
qr.add_data('abcdefghijklmno')
self.assertRaises(DataOverflowError, qr.make, fit=False)
def test_add_qrdata(self):
qr = qrcode.QRCode(version=1)
data = QRData('a')
qr.add_data(data)
qr.make(fit=False)
def test_mode_number(self):
qr = qrcode.QRCode()
qr.add_data('1234567890123456789012345678901234', optimize=0)
qr.make()
self.assertEqual(qr.version, 1)
self.assertEqual(qr.data_list[0].mode, MODE_NUMBER)
def test_mode_alpha(self):
qr = qrcode.QRCode()
qr.add_data('ABCDEFGHIJ1234567890', optimize=0)
qr.make()
self.assertEqual(qr.version, 1)
self.assertEqual(qr.data_list[0].mode, MODE_ALPHA_NUM)
def test_regression_mode_comma(self):
qr = qrcode.QRCode()
qr.add_data(',', optimize=0)
qr.make()
self.assertEqual(qr.data_list[0].mode, MODE_8BIT_BYTE)
def test_mode_8bit(self):
qr = qrcode.QRCode()
qr.add_data(u'abcABC' + UNICODE_TEXT, optimize=0)
qr.make()
self.assertEqual(qr.version, 1)
self.assertEqual(qr.data_list[0].mode, MODE_8BIT_BYTE)
def test_mode_8bit_newline(self):
qr = qrcode.QRCode()
qr.add_data('ABCDEFGHIJ1234567890\n', optimize=0)
qr.make()
self.assertEqual(qr.data_list[0].mode, MODE_8BIT_BYTE)
def test_optimize_size(self):
text = 'A1abc12345123451234512345def1HELLOHELLOHELLOHELLOa' * 5
qr = qrcode.QRCode()
qr.add_data(text)
qr.make()
self.assertEqual(qr.version, 10)
qr = qrcode.QRCode()
qr.add_data(text, optimize=0)
qr.make()
self.assertEqual(qr.version, 11)
def runTest(self):
qrcode.make('image')
def regenerate(request, device_id):
device_qs = (
twofa.models.Device.objects
.active_for_user(request.user).select_subclasses())
device = get_object_or_404(device_qs, pk=device_id)
if not device.can_regenerate():
messages.error(request, _('The "%(auth_name)s" authenticator cannot be regenerated.') % {
'auth_name': device.name()})
return redirect('twofa:list')
device.regenerate()
# TODO(lukegb): make this more general
return redirect(reverse('twofa:paper-code', kwargs={'device_id': device.pk}))
def qr(filename=None):
if not filename:
abort(400)
if not Upload.query.filter_by(path=filename).first():
abort(404)
url = _cfg("protocol") + "://" + _cfg("domain") + "/" + filename
qr = qrcode.make(url)
byte_io = BytesIO()
img = qr.save(byte_io, "PNG")
byte_io.seek(0)
return send_file(byte_io, mimetype="image/png")
def generate_qr(self, data, save_path):
img = qrcode.make(data, **self.qr_options)
img.save(save_path)
def generate_qrcode(data, filepath):
'''?????'''
try:
img = qrcode.make(data)
img.save(filepath)
return True
except:
return False
def _write_qr_to_file(self, api_key):
folder = self.get_plugin_data_folder()
img = qrcode.make(api_key)
img.save('{}/{}'.format(folder, 'qr_code.png'))
def qr_ran(size=args.random,amount=args.amount,rate=args.Rate):
for _ in range(amount):
key = []
for i in range(size):
key.append(random.choice(list(string.hexdigits)))
key = "".join(key)
qr = qrcode.make(key)
qr.show()
time.sleep(rate)
try:
#console.clear()
pass
except:
pass