目录
一、 Flask的安装
pip install flask
我的python版本为3.5.6,flask版本为0.11.1,仅供参考
同时工程文件里需要新建文件夹templates来放html文件
二、人脸识别并将结果传回前端
代码:
index.py
from flask import Flask,render_template
import cv2
app=Flask(__name__)
@app.route('/')
def index():
outname1=detect('static/3.jpg')
return render_template('index.html',outname1=outname1)
def detect(filename):
face_cascade = cv2.CascadeClassifier('C:/Users/Administrator/Anaconda3/envs/deep learning/Lib/site-packages/cv2/data/haarcascade_frontalface_default.xml')
img = cv2.imread(filename)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x, y, w, h) in faces:
img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
outname1='static/face1.jpg'
cv2.imwrite(outname1,img)
return outname1
if __name__=='__main__':
app.run()
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<Meta charset="UTF-8">
<title>媒體大數據</title>
</head>
<body>
<img src="{{outname1}}" />
</body>
</html>
运行结果:
三、Flask+pyMysqL访问数据库
通过添加路由实现数据库的查,并将结果显示在前端
数据库为英语四六级词汇表,查询结果为前200个词,并提供搜索框
代码将不会显示用到的数据库名及账户密码,请读者自行添加
代码:
english.py
from flask import Flask,render_template,request
import pyMysqL
app=Flask(__name__)
@app.route('/english')
def english():
db = pyMysqL.connect("localhost", "数据库用户名", "密码", "用到的数据库", charset='utf8')
cursor = db.cursor()
try:
sql="select * from map_enword limit 200"
cursor.execute(sql)
rs = cursor.fetchall()
rs = list(rs)
print(rs)
except:
rs = 'db-error'
print('py-db-error')
db.close()
return render_template('english.html',rs=rs)
@app.route('/search')
def search():
wanted = request.args.get("wanted", type=str)
if wanted == None:
wanted = 'pineapple'
db = pyMysqL.connect("localhost", "数据库用户名", "密码", "用到的数据库", charset='utf8')
cursor = db.cursor()
try:
sql = "select * from map_enword where english like '%" + wanted + "%'"
cursor.execute(sql)
rs = cursor.fetchall()
rs = list(rs)
print(rs)
except:
rs = 'db-error'
print('py-db-error')
db.close()
return render_template('english.html',rs=rs)
if __name__=='__main__':
app.run()
english.html
<!DOCTYPE html>
<html lang="en">
<head>
<Meta charset="UTF-8">
<title>英语四六级词表</title>
</head>
<body>
<h1>英语四六级词表</h1>
<form action="/search">
<input type="text" name="wanted" value="" default="apple">
<input type="submit" value="搜索">
</form>
{% for r in rs %}
{{r}}<br>
{% endfor %}
</body>
</html>
运行结果: