flash 实现 弹一闪:
一 . 在 mvc 设计模式, 在C中,也就是app的 路由配置函数中,我们
1
@app.route("/flash/")
def flashtest():
flash('有问题')
return render_template('flashtest.html')
- 在flashtest.html 中,我们通过get_flashed_messages()来获取所有flash, get_flashed_messages()函数中还可以给flash打上标签
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% for msg in get_flashed_messages() %}
<h1>{
{ msg }}</h1>
{% endfor %}
</body>
</html>
3 一定不要忘记加上一个 app.secret_key
app.secret_key = '521' # 自己指定
app.secret_key=os.urandom(16) # 随机生成
二 上传文件
视图控制函数中,我们通过 request.files[‘the_file’]来获取传过来的文件流,几乎等同于python open一个本地的文件流,然后 将其save 到一个地方 f.save(‘uploads/uploaded_file.txt’),当然,此方法并不会主动创建文件
@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
f = request.files['the_file']
# f1 = request.args.get('the_file')
# print(type(f1))
# print(f)
f.save('uploads/uploaded_file.txt')
return '上传成功'
else:
return render_template('uploadfile.html')
三 mvc设计模式简介
设计模式,是前人面对特定场景的最有效解决方案的模板
mvc 解决的是 数据 和显示问题
m是model,也就是封装的数据
v是view 是如何显示,是视图
c 是控制器control, 是m和v 的中间人
几乎所有的应用都要和数据打交道,所以mvc设计模式也是应用的最广泛的设计模式之一
四 保持不同开发者环境一致的方法
pip freeze > requirement.txt 将本地的开发者环境导入到requirement.txt文件中
然后其他人拿到这个文件,放置到相应的目录下,
pip install -r requirement.txt 安装文件中的库包
五表单
原生表单的获取,以及flask封装好的表单的数据获取和参数的验证
六 蓝图
七 返回的网页中显示图片
其实这个问题可以简化成访问一个图片的地址的时候可以显示出这张图片,
@app.route('/<img>', methods=('GET', 'POST'))
def mainpage(img):
img_path = './images/'+img
print(img_path)
with open(img_path, 'rb') as f:
image = f.read()
resp = Response(image, mimetype="image/jpeg")
return resp
需求: 访问 imgs/路由的时候,显示所有这个文件夹下的图片内容,点击相应的图片,然后相应的图片
如何识别图片和文本,如果我将文本的后缀名改成jpg呢?