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

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()