最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python-圖片流傳輸?shù)乃悸芳笆纠?url轉換二維碼)

 更新時間:2020年12月21日 16:19:17   作者:yblackd  
這篇文章主要介紹了python-圖片流傳輸?shù)乃悸芳笆纠?url轉換二維碼),幫助大家更好的理解和使用python,感興趣的朋友可以了解下

1.場景

  • 將URL動態(tài)生成二維碼前端展示(微信支付等,)--》

1.靜態(tài)文件路徑訪問
返回URL_name,(a標簽,src 靜態(tài)路由訪問)

2.流傳輸,前端渲染
二進制流返回前端,前端根據二進制流編碼類型顯示

3.前端js生成
后臺獲取到微信支付的code_url,前端js將code_url生成二維碼,并渲染

  • 實際代碼

使用python_web 框架--》tornado
manager.py

import os
import asyncio

import tornado.ioloop
import tornado.httpserver
import tornado.web
import tornado.options

from tornado.options import define, options, parse_command_line
from apps import UrlHandler, Url2Handler, Url3Handler


define("port", default=8000, type=int)


def create_app():
  settings = {
    "template_path": os.path.join(os.path.dirname(__file__), "templates"),
    "static_path": os.path.join(os.path.dirname(__file__), "static"),
  }
  application = tornado.web.Application(
    handlers=[
      (r"/url", UrlHandler),
      (r"/url2", Url2Handler),
      (r"/url3", Url3Handler),
    ],
    debug=True,
    **settings,
  )
  return application


if __name__ == '__main__':
  parse_command_line()
  app = create_app()
  server = tornado.httpserver.HTTPServer(app)
  server.listen(options.port)
  asyncio.get_event_loop().run_forever()

apps.py

import tornado.web
from manager_handler import gen_qrcode, gen_qrcode_obj,gen_qrcode_buf


class BaseHandler(tornado.web.RequestHandler):
  pass


class UrlHandler(BaseHandler):
  def get(self):
    # 獲取鏈接
    self.render('qrcode.html', title='url', data='URL-提交', img_stream='')

  async def post(self):
    # 生成二維碼
    url = self.get_argument('url_str')

    # URL轉換二維碼
    img_stream = gen_qrcode(url)
    await self.render('qrcode.html', title='qrcode', data='掃碼支付', img_stream=img_stream)


class Url2Handler(BaseHandler):
  def get(self):
    # 獲取鏈接
    self.render('qrcode.html', title='url', data='URL-提交', img_stream='')

  async def post(self):
    # 生成二維碼
    url = self.get_argument('url_str')

    # URL轉換二維碼
    img_stream = gen_qrcode_obj(url=url)
    # await self.render('qrcode.html', title='qrcode', data='掃碼支付', img_stream=img_stream)
    self.set_header('Content_Type', 'image/jpg')
    self.set_header('Content_length', len(img_stream))
    self.write(img_stream)


class Url3Handler(BaseHandelr):
  def get(self):
    self.render('qrcode.html', title='url', data='URL-提交', img_stream='')

  def post(self):
    url = self.get_argument('url')
    img_stream = gen_qrcode_buf(url)
    self.set_header('Content-Type', 'image/png')
    self.write(img_stream)

manager_handler.py

import qrcode
import io
import base64
import time


def gen_qrcode(url):
  """
  方式1: URL轉換二維碼
  :param url: 轉換二維碼的URL
  :return: base64編碼后的 二進制流 二維碼數(shù)據
  """
  qr = qrcode.make(url)
  buf = io.BytesIO()
  qr.save(buf)
  img_buf = buf.getvalue()
  img_stream = base64.b64encode(img_buf)
  return img_stream


def gen_qrcode_obj(version=1, box_size=10, border=4, url=None):
  """
  方式2: URL轉換二維碼(圖片流傳輸, template需要指明 data:base64編碼)
  :param version:
  :param box_size:
  :param border:
  :return:
  """
  qr = qrcode.QRCode(
    version=version,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=box_size,
    border=border,
  )

  url = "https://www.12dms.com" if url is None else url
  save_name = "./" + "qrcode" + str(time.time()) + ".png"

  qr.add_data(url)
  qr.make()
  img = qr.make_image()
  img.save(save_name.encode())
  with open(save_name, 'rb') as img_f:
    img_stream = img_f.read()
    img_stream = base64.b64encode(img_stream)
    print(img_stream)
  return img_stream

def gen_qrcode_buf(words):
  qr = qrcode.make(words)
  buf = io.BytesIO()
  qr.save(buf, 'png')
  qr_buf = buf.getvalue()
  # img_stream = base64.b64encode(qr_buf)
  return qr_buf

base.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>{% block title %}{% end %}</title>
  {% block head %}{% end %}
</head>

<body>
  <h1 style="text-align: center">
    {% block h1 %}{{ data }}{% end %}
  </h1>
  {% block content %}{% end %}
</body>
</html>

qrcode.html

{% extends "base.html" %}

{% block title %}
  {{ title }}
{% end %}

{% block h1 %}
  {{ data }}
{% end %}


{% block content %}
  <form method="post" action="" >
    <p>
      輸入待轉換的URL:<input name="url_str"/>
      <br>
{#      {{ img_stream }}#}
      {% if img_stream %}
        <img style="width:180px" src="data:;base64,{{ img_stream }}" alt="">
      {% end %}
    </p>
    <br>
    <input id="submit" type="submit" value="生成二維碼">
  </form>
{% end %}

以上就是python-圖片流傳輸?shù)乃悸芳笆纠?url轉換二維碼)的詳細內容,更多關于python 圖片流傳輸?shù)馁Y料請關注腳本之家其它相關文章!

相關文章

  • Python?colorama?彩色打印實現(xiàn)代碼

    Python?colorama?彩色打印實現(xiàn)代碼

    這篇文章主要介紹了Python?colorama?彩色打印實現(xiàn)代碼,將介紹的類為Back,?它實現(xiàn)了與?Fore?類相同的九個關鍵字:BLACK、RED、GREEN、YELLOW、BLUE、MAGENTA、CYAN、WHITE、RESET,感興趣的朋友一起看看吧
    2022-04-04
  • 如何解決tensorflow恢復模型的特定值時出錯

    如何解決tensorflow恢復模型的特定值時出錯

    今天小編就為大家分享一篇如何解決tensorflow恢復模型的特定值時出錯,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 淺談Python 參數(shù)與變量

    淺談Python 參數(shù)與變量

    這篇文章主要介紹了Python 參數(shù)與變量的的相關資料,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • python的debug實用工具 pdb詳解

    python的debug實用工具 pdb詳解

    這篇文章主要介紹了python的debug實用工具 pdb詳解,首先,介紹一下 pdb 調試,pdb 是 python 的一個內置模塊,用于命令行來調試 Python 代碼,需要的朋友可以參考下
    2019-07-07
  • Python中表格插件Tabulate的用法小結

    Python中表格插件Tabulate的用法小結

    這篇文章主要介紹了Python中表格插件Tabulate的用法,Tabulate插件是一個功能強大、簡單易用的數(shù)據可視化工具,它能夠滿足我們在Python中進行表格數(shù)據展示的各種需求,通過使用Tabulate插件,我們能夠輕松地生成美觀且易讀的表格,需要的朋友可以參考下
    2023-11-11
  • python實現(xiàn)自動網頁截圖并裁剪圖片

    python實現(xiàn)自動網頁截圖并裁剪圖片

    這篇文章主要為大家詳細介紹了python實現(xiàn)自動網頁截圖并裁剪圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python 解壓、復制、刪除 文件的實例代碼

    python 解壓、復制、刪除 文件的實例代碼

    這篇文章主要介紹了python 解壓、復制、刪除 文件的實例代碼,代碼簡單易懂非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • pytorch教程之網絡的構建流程筆記

    pytorch教程之網絡的構建流程筆記

    這篇文章主要介紹了pytorch教程中網絡的構建流程,文中附含了詳細的示例代碼流程,有需要的朋友可以借鑒參考下,希望可以有所幫助
    2021-09-09
  • Python中itertools模塊用法詳解

    Python中itertools模塊用法詳解

    這篇文章主要介紹了Python中itertools模塊用法,詳細的講述了itertools模塊中常見函數(shù)的用法及相關示例,有助于深入掌握Python程序設計,需要的朋友可以參考下
    2014-09-09
  • Python中的類屬性與實例屬性區(qū)別詳解

    Python中的類屬性與實例屬性區(qū)別詳解

    這篇文章主要介紹了Python中的類屬性與實例屬性區(qū)別詳解,類屬性是在類中定義的屬性,它是和這個類所綁定的,這個類中的所有對象都可以訪問,實例屬性是與類的實例相關聯(lián)的數(shù)據值,是這個實例私有的,需要的朋友可以參考下
    2023-08-08

最新評論

五河县| 盐亭县| 江北区| 利川市| 新沂市| 和静县| 庆云县| 香河县| 马关县| 衡南县| 左云县| 类乌齐县| 阜平县| 若羌县| 延庆县| 长垣县| 马山县| 木兰县| 名山县| 新晃| 鹿邑县| 伊春市| 江口县| 武城县| 双江| 三明市| 托里县| 连州市| 曲水县| 武安市| 施秉县| 神池县| 彝良县| 夏津县| 仁怀市| 修武县| 合阳县| 清丰县| 桑日县| 阳高县| 余姚市|