You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.0 KiB
70 lines
2.0 KiB
|
|
|
|
import sqlite3
|
|
from turtle import up
|
|
from flask import Flask, request, jsonify
|
|
|
|
app = Flask(__name__)
|
|
|
|
def db_connect():
|
|
sqliteconnect = None
|
|
try:
|
|
sqliteconnect = sqlite3.connect('movies.sqlite')
|
|
except sqlite3.Error as error:
|
|
print(error)
|
|
return sqliteconnect
|
|
|
|
@app.route('/movies', methods=['GET', 'POST'])
|
|
def movies():
|
|
sqlconnect = db_connect()
|
|
|
|
if request.method == 'GET':
|
|
cursor = sqlconnect.execute("SELECT * FROM movie")
|
|
movies = [
|
|
dict(id=row[0], movie_title=row[1])
|
|
for row in cursor.fetchall()
|
|
]
|
|
if movies is not None:
|
|
return jsonify(movies)
|
|
|
|
if request.method == 'POST':
|
|
newmovie = request.form['movie_title']
|
|
sql = f"INSERT INTO movie (movie_title) VALUES ('{newmovie}')"
|
|
print(sql)
|
|
sqlconnect.execute(sql)
|
|
sqlconnect.commit()
|
|
return "Der Film wurde erfolgreich erstellt"
|
|
|
|
@app.route('/movie/<int:id>', methods=['GET', 'PUT', 'DELETE'])
|
|
def single_movie(id):
|
|
sqlconnect = db_connect()
|
|
cursor = sqlconnect.cursor()
|
|
movie = None
|
|
if request.method == 'GET':
|
|
cursor.execute(f"SELECT * FROM movie WHERE id={id}")
|
|
rows = cursor.fetchall()
|
|
for r in rows:
|
|
movie = r
|
|
if movie is not None:
|
|
return jsonify(movie), 200
|
|
else:
|
|
return f"Film mit der id:{id} wurde nicht gefunden", 404
|
|
if request.method == 'PUT':
|
|
movie = request.form['movie_title']
|
|
sql = f"UPDATE movie SET movie_title='{movie}' WHERE id={id}"
|
|
sqlconnect.execute(sql)
|
|
sqlconnect.commit()
|
|
|
|
update_movie = {
|
|
'id': id,
|
|
'movie_title': movie
|
|
}
|
|
|
|
return jsonify(update_movie)
|
|
if request.method == 'DELETE':
|
|
sql = f"DELETE FROM movie WHERE id={id}"
|
|
sqlconnect.execute(sql)
|
|
sqlconnect.commit()
|
|
return jsonify(f"Der Film mit der id:{id} wurde gelöscht")
|
|
if __name__ == '__main__':
|
|
app.run()
|