2016-11-21 6 views
0

Die Datei index.html ist statisch, und daher wäre es verschwenderisch, sie durch render_template() zu übergeben. Wenn ich store index.html under static/ und app = Flask(__name__) benutze, ist alles in Ordnung.Wie verwende ich eine Flat-Flask-Verzeichnishierarchie?

Aber wenn ich static_url_path='' an die Wurzel zeigen und halten index.html im selben Ordner wie die Python-Anwendung, ich

127.0.0.1 - - [21/Nov/2016 14:35:54] "GET/HTTP/1.1" 404 - 

index.html

<!DOCTYPE html> 
<head></head> 
<body> 
    <h2>Hello, World!</h2> 
</body> 

Py

from flask import Flask, current_app 
app = Flask(__name__, static_url_path='') 

@app.route('/') 
def hello_world(): 
    return current_app.send_static_file('index.html') 

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

Wie verwende ich eine vollständig flache Verzeichnishierarchie, indem ich die beiden oben genannten Dateien im selben Verzeichnis verwalte?

+0

ich Sie dienen statische Seiten durch Flask abhalten würde, wenn das alles ist, was Sie tun müssen. Suchen Sie in 'static_folder' anstelle von' static_url_path'. Siehe [diesen Beitrag] (http://stackoverflow.com/a/20648053/3261863) für 'send_from_directory', was für Sie von Nutzen sein kann, da Sie Ihre statischen Einstellungen nicht überlasten müssen aus den Seiten. –

Antwort

0

Ich denke, Sie müssen static_folder statt status_url_folder setzen und den absoluten Pfad des Ordners anstelle nur einer leeren Zeichenfolge angeben.

können Sie den Pfad statische Standard-Ordner-Ansicht mit print(app.static_folder)

0

Sie nur flask.send_file() verwenden:

import flask 

app = flask.Flask(__name__) 


@app.route('/') 
def hello_world(): 
    return flask.send_file('index.html') 

if __name__ == '__main__': 
    app.run()