念念不忘,必有回响。

Flask

在用命令行执行mkvirtualenv flask 创建虚拟环境之前先安装以下两个模块:

pip install virtualenv

pip install virtualenvwrapper-win

 

cd 到存放虚拟环境光的地址

mkvirtualenv ENV -p /usr/local/bin/python2.7 在当前目录下创建名为ENV的虚拟环境(如果第三方包virtualenv安装在python3下面,此时创建的虚拟环境就是基于python3的),-p 指定python版本创建虚拟环境

mkvirtualenv --system-site-packages ENV 参数 --system-site-packages 指定创建虚拟环境时继承系统三方库

pip install flask==1.0.2

 

Flask 修改静态文件不生效的解决方案

主要原因:5000端口可能被占用

 1.查看一下‘5000’端口被哪些应用占着:Netstat -ano|find “5000”

 

 2.任务管理器->性能->打开资源监视器,找到相应的pid,将其终止

 3.然后在pycharm中重新运行,一切OK。

以后防止此类现象再次发生,如下图开启debug模式即可。

 

 如何在不重启的情况下,刷新修改过后的前端页面内容:

app.jinja_env.auto_reload=True
app.config['TEMPLATES_AUTO_RELOAD']=True
app.run(debug=True,host='0.0.0.0')

Flask图片不更新问题:在使用flask进行web开发时,需要将图片上传并展示,对于上传的图片都进行重命名并保存在static文件夹下,然而发现多次上传后展示的图片还是原来的图片,尽管后端显示图片已更新成最新上传的图片,前端还是展示原来的图片,该问题解决方案(在main.py文件中增加以下代码):

 

# url_for,修改静态文件(js,css,image)时,网页同步修改
import os
from flask import url_for

@app.context_processor # 上下文渲染器,给所有html添加渲染参数
def override_url_for():
    return dict(url_for=dated_url_for)

def dated_url_for(endpoint, **values):
    filename = None
    if endpoint == 'static':
        filename = values.get('filename', None)
    if filename:
        file_path = os.path.join(app.root_path, endpoint, filename)
        values['v'] = int(os.stat(file_path).st_mtime) # 取文件最后修改时间的时间戳,文件不更新,则可用缓存
    return url_for(endpoint, **values)

 通过刷新浏览器来解决:在浏览器里按ctrl+shift+delete清除缓存

 

关于Flask通过.env加载环境变量的两个坑

posted @ 2021-08-04 21:40  点点米饭  阅读(113)  评论(0编辑  收藏  举报