在呈现网页之前,如何在Flask中读取网页?

在呈现网页之前,如何在Flask中读取网页?,flask,Flask,我想在登录到我的站点后,根据页面的版本添加有条件的新页面显示。为了简化更改,我希望我的代码从页面本身读取版本,这样将来就不需要更改代码了——只需要更改HTML。我不知道该怎么做 下面是一些伪代码: @bp.route("/login", methods=['GET', 'POST']) def login:() if login_user(user, password): return redirect( url_for('whats_new'))

我想在登录到我的站点后,根据页面的版本添加有条件的新页面显示。为了简化更改,我希望我的代码从页面本身读取版本,这样将来就不需要更改代码了——只需要更改HTML。我不知道该怎么做

下面是一些伪代码:

@bp.route("/login", methods=['GET', 'POST'])
def login:()
    if login_user(user, password):
        return redirect( url_for('whats_new'))

def whats_new()
    # read version from header of whats_new.html 
    ver = get_version_from_webpage()
    if ver > 3 :
        return render ('whats_new.html')
    else:
        return redirect ('home.html')

def get_version_from_webpage():
    # THIS IS WHERE I AM STUCK!
    # ??????????
    return ver
whats_new.html将包含版本号-可能在


如何在不首先呈现页面的情况下获取版本,您有什么想法吗?

这里有一个解决方案供感兴趣的人使用。
使用requests库获取页面不会显示它,因为它不是Python。 获取的响应包含整个页面,因此需要对其进行解析以找到所需的数据。这里有一个叫做BeautifulSoup的图书馆

这是我的工作代码

def get_pageversion(url):
    # retrieves content value of meta field  'version'
    # <meta name="version" content="4"/> would return 4.0
    try:
        ret = requests.get(url)
        soup = BeautifulSoup(ret.text, features="html.parser")
        metas = soup.find_all('meta')
        version = float(next(iter([meta.attrs['content'] for meta in metas if meta.attrs.get('name') == 'version'])))
        return version
    except:
        return 0
def get_页面版本(url):
#检索元字段“版本”的内容值
#将返回4.0
尝试:
ret=requests.get(url)
soup=BeautifulSoup(ret.text,features=“html.parser”)
metas=soup.find_all('meta'))
version=float(下一步(iter([meta.attrs['content']表示metas中的meta,如果meta.attrs.get('name')=='version']))
返回版本
除:
返回0

您能解释一下为什么要将版本硬编码为html文件吗?我对你在这里的目标有点不习惯,我希望避免每次更新“最新信息”页面时都触碰代码或数据库,并允许每个用户在阅读该页面时隐藏该页面(不再查看)。当然,这一切都可以在db中完成,但我正试图通过在页面本身中“简单地”设置一个版本来实现。