gpt4 book ai didi

python - Flask 的 render_template() 问题

转载 作者:搜寻专家 更新时间:2023-10-31 19:29:12 24 4
gpt4 key购买 nike

我正在开发 Flask 网络应用程序。

要访问内容和功能,您需要登录。

但是,有时,在登录之后,加载的不是完整的主页,而是一个空白的“about:srcdoc”页面。

我在整个 home 路由函数中放置了 print 语句,现在我知道这个错误只会在 return render_template() 开始运行之后发生(在 render_template 发送 get 请求之后,根据命令提示符)。

基础.html:

<html>
<head>
<title>Veritas Annotator</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
{%if session['logged_in']%}
<div><h4><a href="/">Annotator</a> | Logged in as "{{ session['username'] }}" | <a href="/logout">Logout</a></h4></div>
<hr>
{%else%}
<div><h4><a href="/register">Register</a> | <a href="/login">Login</a></h4></div>
<hr>
{%endif%}
{% block content %}{% endblock %}
<style>
body{
margin: 0;
padding: 0;
}
.column{
width: 40%;
padding: 10px;
}

.left{
float: left;
}

.right{
float: right;
}

.row:after {
content: "";
display: table;
clear: both;
}

h4 {
color: black;
text-align: center;
font-family: Arial;
font-size: 20px;
vertical-align: bottom;
}
</style>
</body>
</html>

index.html(为清楚起见缩短):

{% extends "base.html" %}
{% block content %}
{% if not session['logged_in'] %}
<h4>Please, log in to annotate.</h4>
{% else %}
{% if t1,t2 %}

<meta name="viewport" content="width=device-width, initial-scale=1">
<div class="row" style="width: 100%; height: 80%; min-height: 600px;">
<div class="column left" style="width:50%; position: relative; display: inline-block; margin: 0; border: 0; padding: 0;">
<iframe id="cframe" style="display: block" width="100%" height="100%" srcdoc="{{t1}}"></iframe>
</div>
<div class="column right" style="width:50%; position: relative; display: inline-block; margin: 0; border: 0; padding:0;">
<iframe id="oframe" style="display: block" width="100%" height="100%" srcdoc="{{t2}}"></iframe>
</div>
</div>
{% endif %}
{% endif %}
{% endblock %}

Python 代码段(为清楚起见,变量较少):

return render_template('index.html', t1=c_body, t2=o_body)

其中c_body、o_body都是使用selenium的browser.page_source获取的页面源


根据命令提示符,在该错误之前发生的最后一件事是(请注意,这并不总是错误之前的 http 代码,有时它是代码 200 而不是 404):

"GET /api-proxy/-/locale_data/rendr-fe/de-DE/bbd065fad57e0e1eeb40f4f3d5045acf_b8cf454f8216fc48b02d6b403858fbbe2fa3ef36.js HTTP/1.0" 404 -

如果有人了解该请求的含义或之前遇到过此问题,我将非常感谢您的帮助。我已经在网上搜索了几天,但我似乎找不到任何来源来解释正在发生的事情。

EDIT1: 完整代码在这里 => https://github.com/MohamedMoustafaNUIG/AnnotatorVM

EDIT2:如果您认为我应该在问题中包含一些其他信息,请随时提及(即使您不知道解决方案)。如果不解决这个问题,该应用程序就不够稳定,无法发布,这意味着 3 周以上的努力付之东流。

EDIT3: 打开的“about:srcdoc”页面的 html:

<html>
<head></head>
<body></body>
</html>

并且没有控制台消息(在开发工具中)

最佳答案

似乎 iframe 中的某些组件正在将父级导航到 about:scrdoc

要解决这个问题,我需要做的就是将沙箱属性添加到 iframe 并仅限制顶部导航。

关于python - Flask 的 render_template() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56565060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com