python - 将数据从 Flask 传递到 HTML

标签 python flask

我试图将路径列表传递给 HTML,但由于某种原因,输出是一个空白的 HTML 页面。下面是我的 HTML 和 python 代码。 我是网络开发新手。所以我在这里挣扎。

这是我的Python代码,我从中提取包含.md文件的目录路径,它将返回目录路径列表,我必须通过模板显示该列表。

from flask import Flask,render_template, request, redirect, url_for
from git import Repo
import os
from urllib.parse import urlparse
from pathlib import Path

app = Flask(__name__)

def parser(full_path):

path = full_path

files = []
for r, d, f in os.walk(path):
    for file in f:
        if '.md' in file:
            if 'README.md' not in file:

                root = r.replace(path,"")
                url_path = root + "/" + file.replace('.md', '')
                path = str(url_path)
                files.append(path)
return files

def create_dir(gh_url):
#    from ipdb import set_trace;set_trace()
git_url = gh_url

git_dir = git_url.strip('/').split('/')
git_dir = git_dir[-1]

if not os.path.exists(git_dir):
    os.mkdir(git_dir)

home = Path(Path.home())
new_dir = "new_dir"

if not os.path.exists(new_dir):
    os.mkdir(new_dir)

path = os.path.join(home, new_dir)

full_path = os.path.join(path, git_dir)

Repo.clone_from(git_url, full_path)

return parser(full_path)

@app.route("/", methods=["GET", "POST"])
def index():
files = []
if request.method == 'POST':
    gh_url  = request.form['gh_url']

    if len(gh_url) == 0:
        message = "Please enter the github repo"
    else:
        files = create_dir(gh_url)
return render_template('index.html', files=files)                

app.run(debug=True)

index.html 页面是

{% extends 'base.html' %}

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>{% block title %}Enter the Github repository{% endblock %}</title>
</head>
<body>
<ul>
 {% for name in files %}
 <li>{{ name }}</li>
 {% endfor %}
</ul>

<ol>
 {% for name in files %}
 <li>{{ name }}</li>
 {% endfor %}
</ol>
</body>
</html>

base.html 是

{% block title %}Raw Form Example{% endblock %}

{% block content %}
<form method = "POST">
    <p>
        <label for="gh-label">GitHub URL</label>
        <input id="gh-url" name="gh_url" type="text">
    </p>

    <input type="submit" value="Show">
</form>
{% endblock %}

最佳答案

首先,您应该将 {% extends 'base.html' %}index.html 移动到 base.html,然后重命名索引.html 到base.html 以及base.html 到index.html。

请阅读documentation about template inheritance仔细。

那么你的 python 代码的标识是错误的,这会给重现你的示例带来困难。

关于python - 将数据从 Flask 传递到 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59437335/

相关文章:

python - 在网络摄像头中捕捉人脸并实时显示到 flask 中

python - cursor.fetchone() 返回 None 但数据库中的行存在

python - 将 bz2 压缩二进制文件导入为 numpy 数组

python - 在Python Flask中执行linux命令

python - 如何将标题添加到flask test_request_context?

javascript - 尝试在 Flask 应用程序内提供安全脚本

python - Flask/Gunicorn 有 4 个 worker : Does long polling block a worker?

python - 如何在openerp序列中的_interpolation_dict中创建新属性?

python - 如何使用 boto3 以文件系统样式检索存储桶前缀

Python Tkinter 只读文本字段