mini Programm läuft.

This commit is contained in:
br committed 2025-04-05 09:09:38 +02:00
1 parent 5d6cca7336
commit 8389853e04
3 files changed
+67 -4

No files matched your search

+55 -3
View File
@@ -1,10 +1,62 @@
from flask import Flask
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
import os
basedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'buecher.sql')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
# Datenbankmodell für ein Buch
class Buch(db.Model):
id = db.Column(db.Integer, primary_key=True)
titel = db.Column(db.String(80), nullable=False)
autor = db.Column(db.String(80), nullable=False)
jahr = db.Column(db.Integer)
def __repr__(self):
return f'<Buch {self.titel}>'
with app.app_context():
db.create_all()
# Routen für die Anwendung
@app.route('/')
def hello_world():
return 'Hello, World!'
def index():
buecher = Buch.query.all()
return render_template('index.html', buecher=buecher)
@app.route('/hinzufuegen', methods=['GET', 'POST'])
def hinzufuegen():
if request.method == 'POST':
titel = request.form['titel']
autor = request.form['autor']
jahr = request.form.get('jahr', None) # Jahr kann optional sein
neues_buch = Buch(titel=titel, autor=autor, jahr=jahr)
db.session.add(neues_buch)
db.session.commit()
return redirect(url_for('index'))
return render_template('hinzufuegen.html')
@app.route('/bearbeiten/<int:id>', methods=['GET', 'POST'])
def bearbeiten(id):
buch = Buch.query.get_or_404(id)
if request.method == 'POST':
buch.titel = request.form['titel']
buch.autor = request.form['autor']
buch.jahr = request.form.get('jahr', None)
db.session.commit()
return redirect(url_for('index'))
return render_template('bearbeiten.html', buch=buch)
@app.route('/loeschen/<int:id>')
def loeschen(id):
buch = Buch.query.get_or_404(id)
db.session.delete(buch)
db.session.commit()
return redirect(url_for('index'))
if __name__ == '__main__':
app.run(debug=True)
BIN
View File
Binary file not shown.
+12 -1
View File
@@ -3,10 +3,21 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Meine Bücherverwaltung</title>
<title>BibelTresor</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.min.css') }}">
</head>
<body>
<h1>Meine Bücher</h1>
<ul>
{% for buch in buecher %}
<li>{{ buch.titel }} von {{ buch.autor }} ({{ buch.jahr }}) -
<a href="{{ url_for('bearbeiten', id=buch.id) }}">Bearbeiten</a> -
<a href="{{ url_for('loeschen', id=buch.id) }}">Löschen</a>
</li>
{% endfor %}
</ul>
<p><a href="{{ url_for('hinzufuegen') }}">Neues Buch hinzufügen</a></p>
<script src="{{ url_for('static', filename='js/bootstrap.bundle.min.js') }}"></script>
</body>
</html>