中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Python和Django框架怎么生成一個二維碼

發布時間:2021-04-13 17:34:42 來源:億速云 閱讀:268 作者:Leah 欄目:開發技術

使用Python和Django框架怎么生成一個二維碼?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、包的安裝和簡單使用

1.1 用Python來生成二維碼很簡單,可以看 qrcode 這個包:

pip install qrcode

qrcode 依賴 Image 這個包:

pip install Image

如果這個包安裝有困難,可選純Python的包來實現此功能,見下文。

1.2 安裝后就可以使用了,這個程序帶了一個 qr 命令:

qr 'http://www.ziqiangxuetang.com' > test.png

1.3 下面我們看一下如何在 代碼 中使用

import qrcode
img = qrcode.make('http://www.tuweizhong.com')
# img <qrcode.image.pil.PilImage object at 0x1044ed9d0>
with open('test.png', 'wb') as f:
  img.save(f)

這樣就可以生成一個帶有網址的二維碼,但是這樣得把文件保存到硬盤中。

【備注】:純Python的包的使用:

安裝:

pip install git+git://github.com/ojii/pymaging.git#egg=pymaging
pip install git+git://github.com/ojii/pymaging-png.git#egg=pymaging-png

使用方法大致相同,命令行上:

qr --factory=pymaging "Some text" > test.png

Python中調用:

import qrcode
from qrcode.image.pure import PymagingImage
img = qrcode.make('Some data here', image_factory=PymagingImage)

二、Django 中使用

我們可以用 Django 直接把生成的內容返回到網頁,以下是操作過程:

2.1 新建一個 zqxtqrcode 項目,tools 應用:

django-admin.py startproject zqxtqrcode
python manage.py startapp tools

2.2 將 tools 應用 添加到 項目 settings.py 中

INSTALLED_APPS = (
  ...
  'tools',
)

2.3 我們修改 tools/views.py

from django.http import HttpResponse
import qrcode
from cStringIO import StringIO
def generate_qrcode(request, data):
  img = qrcode.make(data)
  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=31536000'
  return response

上面對返回結果進行了處理,瀏覽器會緩存圖片,提高再次加載的速度。Cache-Control 和 Last-Modified 不懂的可以看一下 HTTP協議 相關知識。

2.4 添加視圖函數到 zqxtqrcode/urls.py

url(r'^qrcode/(.+)$', 'tools.views.generate_qrcode', name='qrcode'),

2.5 同步數據庫,打開開發服務器

python manage.py syncdb
python manage.py runserver

看完上述內容,你們掌握使用Python和Django框架怎么生成一個二維碼的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

瑞昌市| 厦门市| 黔南| 八宿县| 台北县| 含山县| 会同县| 洞口县| 青田县| 龙井市| 朔州市| 旬阳县| 商水县| 鹤岗市| 兴业县| 和政县| 常宁市| 隆德县| 胶州市| 南宁市| 雷波县| 乌鲁木齐市| 翼城县| 福清市| 苏尼特左旗| 富民县| 东乌| 长子县| 吴桥县| 普兰店市| 阳朔县| 深圳市| 集贤县| 兴海县| 弥渡县| 永春县| 右玉县| 南岸区| 丰镇市| 赫章县| 西乌|