Es ist mein "erster Tag" bei diesem, also bitte mit mir ertragen.Ich versuche, render_template auf meiner Website zu arbeiten, Probleme zu haben
Ich versuche, render_template zu arbeiten, damit ich Python verwenden kann, um über HTML mit dem Programm Flask zu arbeiten. Ich habe die Tutorials durchgegangen, aber sie sagen mir nur, wie ich den Code über Terminal ausführen soll, und nur dann, indem ich Python explizit anrufe. Ich habe die drei Dateien (routes.py, layout und home) erstellt, die ich brauche, damit die Funktionalität funktioniert und sie in den Ordner (App-Ordner, Vorlagenordner in der App, Vorlagenordner in der App) verschoben wird. Ich habe dann den App-Ordner in der public_html-Datei auf meinem Server abgelegt.
Wenn ich auf die "mywebpage" /app/template/home.html Adresse gehe, bekomme ich die HTML-Datei wie ursprünglich geschrieben ohne die {{}} Variablen ersetzt. Völlig ratlos. Ich weiß nicht, ob ich die routes.py-Datei explizit explizit in einer HTML-Datei aufrufen muss, ob ich DirectoryIndex in .htaccess mitteilen muss, um danach zu suchen, oder ob der Server es im App-Ordner selbst finden soll. Aber im Grunde weiß ich, dass routes.py die anderen Dateien aufruft, aber ich weiß nicht, wie routes.py aufgerufen wird.
Hier ist mein Code:
routes.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('mywebsite')
def home():
user = {'nickname': 'Miguel'} # fake user
return render_template('home.html', user = user)
'''if __name__ == '__main__':'''
app.run(debug=True)
home.html
{% extends "layout.html" %}
{% block content %}
<div class="jumbo">
<h2>Welcome to the Flask app<h2>
<h3>This is the home page for the Flask app<h3>
</div>
<body>
<p> Hello, {{user.nickname}} </p>
</body>
{% endblock %}
layout.html
<!DOCTYPE html>
<html>
<head>
<title>Flask App</title>
</head>
<body>
<header>
<div class="container">
<h1 class="logo">Flask App</h1>
</div>
</header>
<div class="container">
{% block content %}
{% endblock %}
</div>
</body>
</html>
Schließlich, sei nett. Ich habe alles getan, was mir einfällt, um an diesen Punkt zu kommen.
EDIT: Diese Webseite:
http://melvin0008.github.io/blog/build-a-redditapi-using-python/
sagt, dass @ app.route ('/ pants') sollte mywebsite.com/pants die gerenderte Vorlage machen anzuzeigen. Ich habe das mit meinem route.py-Dokument sowohl im root public_html-Ordner als auch im app-Ordner versucht. Keine funktionierte. website.com/pants wird von meinem Server nicht gesehen.
Welche URL schreiben Sie in den Browser? –
Es klingt, als würde man diese Dateien auf einem Server ablegen und erwarten, dass Apache sie nur bedient (ähnlich wie PHP funktioniert). So funktioniert Flask (oder Python im Allgemeinen) nicht. Sie müssen die Anwendung normalerweise über einen WSGI-Server ausführen. Im Fall von Apache ist mod_wsgi in der Regel das, was Sie suchen. Weitere Informationen finden Sie in den [Dokumentationen zur Verwendung von Flask] (http://flask.pocoo.org/docs/0.11/deploying/). – dirn
dirn - Ja! Ich dachte, du solltest es wie eine html oder php Datei ausführen, wo du es einfach in den public_html Ordner speicherst und es ist gut zu gehen. Ich werde in die WSGI-Server-Sache schauen, aber wenn jemand andere "Idioten-Guides" hat, würde ich es gerne sehen. –