久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:75日期:2022-07-01 15:17:13
1.場(chǎng)景 將URL動(dòng)態(tài)生成二維碼前端展示(微信支付等,)--》

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

2.流傳輸,前端渲染二進(jìn)制流返回前端,前端根據(jù)二進(jìn)制流編碼類型顯示

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

實(shí)際代碼

使用python_web 框架--》tornadomanager.py

import osimport asyncioimport tornado.ioloopimport tornado.httpserverimport tornado.webimport tornado.optionsfrom tornado.options import define, options, parse_command_linefrom apps import UrlHandler, Url2Handler, Url3Handlerdefine('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 applicationif __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.webfrom manager_handler import gen_qrcode, gen_qrcode_obj,gen_qrcode_bufclass BaseHandler(tornado.web.RequestHandler): passclass 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轉(zhuǎn)換二維碼 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轉(zhuǎn)換二維碼 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 qrcodeimport ioimport base64import timedef gen_qrcode(url): ''' 方式1: URL轉(zhuǎn)換二維碼 :param url: 轉(zhuǎn)換二維碼的URL :return: base64編碼后的 二進(jìn)制流 二維碼數(shù)據(jù) ''' qr = qrcode.make(url) buf = io.BytesIO() qr.save(buf) img_buf = buf.getvalue() img_stream = base64.b64encode(img_buf) return img_streamdef gen_qrcode_obj(version=1, box_size=10, border=4, url=None): ''' 方式2: URL轉(zhuǎn)換二維碼(圖片流傳輸, 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_streamdef 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> 輸入待轉(zhuǎn)換的URL:<input name='url_str'/> <br>{# {{ img_stream }}#} {% if img_stream %}<img src='data:;base64,{{ img_stream }}' alt=''> {% end %} </p> <br> <input type='submit' value='生成二維碼'> </form>{% end %}

以上就是python-圖片流傳輸?shù)乃悸芳笆纠?url轉(zhuǎn)換二維碼)的詳細(xì)內(nèi)容,更多關(guān)于python 圖片流傳輸?shù)馁Y料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 在线亚洲免费 | av成人在线观看 | 欧美日韩一区二区不卡 | 久久精品久| 国产高清精品在线 | 久久99这里只有精品 | 欧美亚洲一区 | 三级视频在线 | 欧美激情自拍偷拍 | 久久久久中文字幕 | 精品中文在线 | 国产九九av | 欧洲精品视频在线观看 | 91免费版在线观看 | 国产九九精品 | 亚洲天天干 | 国产午夜精品久久 | 9999亚洲| 亚洲免费网 | 日韩中文字幕一区二区高清99 | 国产做a爱片久久毛片 | 欧美日韩一二三区 | 综合网激情 | 中文字幕一区在线观看视频 | 日韩99| 国产精品一区久久久久 | 午夜欧美精品久久久久 | 一区二区三区四区久久 | 天天综合永久入口 | 日韩激情视频一区二区 | 国产欧美一区二区精品婷 | 九九香蕉视频 | 色综合社区 | 国产日韩欧美在线 | 欧美中文一区 | 欧美在线观看一区 | 午夜精品网站 | 毛片免费观看视频 | 自拍偷拍专区 | 免费不卡视频 | 国产视频三区 |