【功能一】py向html传参数,使用flask.render_template
.py文件中使用flask接口返回带参数的html页面,传递参数给html。html中变量的使用需要加双大括号:{{var_name}}
.py文件
import os
from flask import Flask, render_template, request
# 设置了静态目录为./upload_pics,方便传递参数给html文件之后,显示图片
# 假设上述目录下有一张123.jpg图片文件
# 本例为了演示和方便理解,略去了传图片时的校验代码
app = Flask(__name__, static_folder='./upload_pics')
UPLOAD_FOLDER = 'upload_pics'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER # 设置文件上传的目标文件夹
basedir = os.path.abspath(os.path.dirname(__file__)) # 获取当前项目的绝对路径
@app.route('/api/upload', methods=['POST'], strict_slashes=False)
def api_upload():
file_dir = os.path.join(basedir, app.config['UPLOAD_FOLDER']) # 拼接成合法文件夹地址
file_name= '123.jpg'
f.save(os.path.join(file_dir, file_name)) #保存文件到upload目录
return render_template('upload_ok.html', fname = file_name) # 向html文件以变量名fname传递参数,值为file_name对应的'123.jpg'。此处可以传递多个参数,参考附件链接
# 传递多个参数示例 return render_template('upload_ok.html', fname = file_name, var1='aaa', var2='bbb')
upload_ok.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>网页标题</title>
</head>
<body>
<h3>上传成功!下面依次是文件名和显示上传的这张图片</h3>
{{fname}}
<img src="{{ url_for('static', filename=fname)}}" width="400" height="400" alt="你的图片被外星人劫持了~~"/>
</body>
</html>
参考:https://blog.csdn/weixin_36380516/article/details/80008389
【功能二】html向py传参数(网页向接口传值)
html文件里面:点击按钮,用form表单发送dict类型数据,python文件中使用flask定义了接口,并使用flask.request接收。
html文件向py文件发送的数据为:ImmutableMultiDict([('file_path', '1558418802.jpg')])
.html文件
<!-- 其中变量 {{fname}} = 1558418802.jpg-->
<form action="/api/start" enctype='multipart/form-data' method='POST'>
<input name="file_path" type="text" value={{fname}}>
<input type="submit" value="调用start接口" class="button-new" style="margin-top:20px;"/>
</form>
.py文件
from flask import request
@app.route('/api/start', methods=['POST'], strict_slashes=False)
def api_predict():
CLASSIFY_REST_API_URL = 'http://xxx.xxx.xxx.xxx:5000/predict'
headers = {'Content-Type': 'application/json'}
fname = request.form['file_path']
参考:https://blog.csdn/MooKee_cc/article/details/52947332
更多推荐
python flask html互相传递参数
发布评论