我在哪里将模板文件夹放在Flask应用程序中?

时间:2014-06-13 01:18:59

标签: python templates flask directory

我试图在我的Flask应用中使用render_template

# -*- coding: utf-8 -*-

from flask import Flask, render_template, redirect, url_for, request

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "Hello World", 200

@app.route('/welcome')
def welcome():
    return render_template("welcome.html")

@app.route("/login", methods=["GET", "POST"])
def login():
    error = None
    if request.method == "POST":
        if request.form["username"] != "admin" or request.form["password"] != "admin":
            error = "Invalid credentials. Please try again!"
        else:
            return redirect(url_for("home"))
    return render_template("login.html", error=error)


app.run(debug=True)

我认为我的应用无法看到welcome.html(以及模板文件夹),因为我总是得到一个"内部服务器错误"没有HTML页面。

在单个文件夹中,我有app.py静态文件夹和模板文件夹(带有HTML文件)。

这里有什么问题?

3 个答案:

答案 0 :(得分:0)

您可能不需要模板名称中的/
(即'welcome.html',而非'/welcome.html')。

请参阅documentation了解render_template。

答案 1 :(得分:0)

无论是否使用斜杠都可以。

您可以共享文件夹结构和正在执行的脚本(例如 init.py

尝试查看this(它是我的网页的回购),看看你是否遗漏了某些东西......

答案 2 :(得分:0)

你的python脚本是否具有最小Flask应用程序的所有必要位?

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/welcome')
def welcome():
    return render_template("/welcome.html")

if name== "__main__":
app.run()