html Widget programmieren mit Django Datenbank?
Hallo,
ich habe eine Django Datenbank erstellt, und möchte mein html Widget für meine Webseite damit verwalten. Die Datenbank funktioniert soweit, ich kann Datensätze hinzufügen, bearbeiten und entfernen. Wenn ich den Link in den Browser eingebe wird meine Tabelle im Browser auch mit allen Daten angezeigt und aktualisiert wenn ich in der Datenbank etwas ändere. Bette ich den html code nun aber in meine Webseite ein, wird die Tabelle angezeigt, aber ohne den Inhalten aus der Datenbank. Kann mir bei dem Problem vielleicht jemand helfen.
Vielen Dank schonmal im Voraus.
Das ist der html Code:
<!DOCTYPE html>
<html>
<head>
<style>
/* Stil für die gesamte Tabelle */
table {
border-collapse: collapse;
width: 65%;
margin: 20px auto;
border: 1px solid #ccc;
position: relative;
}
th, td {
text-align: left;
padding: 8px;
border-right: 1px solid #ccc;
}
th {
background-color: #8B0000;
color: white;
text-align: left;
}
tr:nth-child(even) {
background-color: #f2f2f2;
}
tr:nth-child(odd) {
background-color: #ffffff;
}
td:last-child {
border-right: none;
}
th:nth-child(1), td:nth-child(1),
th:nth-child(4), td:nth-child(4) {
width: 100px;
}
td:nth-child(2), th:nth-child(2),
td:nth-child(3), th:nth-child(3) {
width: 85px;
}
h1 {
text-align: center;
}
</style>
</head>
<body>
<h1>Nächste Veranstaltungen</h1>
<table>
<tr>
<th>Titel</th>
<th>Datum</th>
<th>Zeitraum</th>
<th>Örtlichkeit</th>
</tr>
<!-- Schleife für die Anzeige der nächsten drei Veranstaltungen -->
{% for event in upcoming_events %}
<tr>
<td>{{ event.Titel }}</td>
<td>{{ event.Datum|date:"l, j. F Y" }}</td>
<td>{{ event.Zeitraum }}</td>
<td>{{ event.Örtlichkeit }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
2 Antworten
Das liegt daran, dass HTML selber ja statisch ist und keine dynamischen Inhalte generieren kann. Du müsstest also Deinem Server beibrigen, statt nur HTML statisch auszuliefern, Django/Python Interpreter dafür zu nutzen.
Stichwort python cgi. Hier eine allgemeine Anleitung dazu:
Alles klar, vielen Dank für deine Antwort. Ich werde das mal so versuchen
Lokal funktioniert es bei dir, da die Seite da wohl über den internen Webserver von Django ausgespielt wird. Der interpretiert den Python-Code (und somit auch dein Template) entsprechend.
Für eine öffentliche Webseite solltest du schauen, dass dein Webhoster entweder Python-Web-/Django-Anwendungen unterstützt oder dir ausreichend Freiheiten zur Serverkonfiguration/-installation gibt.
In der Django-Dokumentation (How to deploy Django) findest du schlussendlich Anleitungen zu verschiedenen Tools (Daphne, Gunicorn, etc.) die du für die Ausführung der Anwendung nutzen könntest.
Der oben erwähnte interne Webserver eignet sich nicht, - er ist ausdrücklich nur für Entwicklungs- und Testplattformen gedacht.