先来给大家介绍一个网站草料网,这个网站是专门来生成二维码的。我们要利用Python完成其中的一个功能,就是根据URL地址生成二维码。
flask框架
先来给大家介绍一下flask框架,flask框架是单文件微架构,轻量级Python web框架 在此基础上你可以使用你喜欢的方式来开发,对于有基础的同学,可以最大的解放你的战斗力。
这是flask的文档:http://docs.jinkan.org/docs/flask/
建议大家学习的时候可以参考官方的文档。
一个最小的 Flask 应用看起来会是这样:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
接下来可以自己定义一些路由和方法来完成生成二维码的功能。
生成二维码
这里需要安装两个模块,qrcode
以及pillow
,PIL这个库在Python2和Python3中安装有些不一样,在Python2中直接pip install PIL
就可以了,但是在Python3中需要安装pillow。
import qrcode
from PIL import Image
def get_code(url):
# 生成二维码图片对象
img = qrcode.make(url)
path = 'static/images/1.png'
img.save(path)
return path
flask框架路由
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
do_the_login()
else:
show_the_login_form()
接下来可以自己定义一个路由,来接收前端页面发送过来的URL地址
@app.route('/url',methods=['GET','POST'])
def url():
if request.method == 'GET':
return render_template('index.html')
else:
url = request.form['url']
imgurl = ercode.url(url)
# return imgurl
return render_template('img.html',imgurl = imgurl)
flask框架模板
用 Python 生成 HTML 十分无趣,而且相当繁琐,因为你必须手动对 HTML 做转义来保证应用的安全。为此,Flask 配备了Jinja2模板引擎。
你可以使用render_template
方法来渲染模板。你需要做的一切就是将模板名和你想作为关键字的参数传入模板的变量。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="/url" method="post">
url: <input type="text" value="http://" name="url"><br>
<input type="submit" value="生成二维码">
</form>
</body>
</html>
到这里基本上利用flask框架完成生成二维码的功能就完成了。
更多Python有趣的文章,微信搜索公众号【极客夜读】