BARRAUX Arthur
2 years ago
commit
ae4f5c746c
4 changed files with 53 additions and 0 deletions
Binary file not shown.
@ -0,0 +1,53 @@ |
|||
from flask import Flask, jsonify, request |
|||
app = Flask(__name__) |
|||
from flask_sqlalchemy import SQLAlchemy |
|||
|
|||
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db' |
|||
db = SQLAlchemy(app) |
|||
|
|||
app.app_context().push() |
|||
|
|||
class Drink(db.Model): |
|||
id = db.Column(db.Integer, primary_key=True) |
|||
name = db.Column(db.String(80), unique=True, nullable=False) |
|||
description = db.Column(db.String(120)) |
|||
|
|||
def __repr__(self) -> str: |
|||
return f"{self.name} - {self.description}" |
|||
|
|||
|
|||
@app.route('/') |
|||
def index(): |
|||
return 'Hello World !' |
|||
|
|||
@app.route('/drinks') |
|||
def get_drinks(): |
|||
drinks = Drink.query.all() |
|||
|
|||
output = [] |
|||
for drink in drinks: |
|||
drink_data = {'name': drink.name, 'description': drink.description} |
|||
output.append(drink_data) |
|||
|
|||
return {"drinks": output} |
|||
|
|||
@app.route('/drinks/<id>') |
|||
def get_drink(id): |
|||
drink = Drink.query.get_or_404(id) |
|||
return jsonify({'name': drink.name, "description": drink.description}) |
|||
|
|||
@app.route('/drinks', methods=['POST']) |
|||
def add_drink(): |
|||
drink = Drink(name=request.json['name'], description=request.json['description']) |
|||
db.session.add(drink) |
|||
db.session.commit() |
|||
return {'id': drink.id} |
|||
|
|||
@app.route('/drinks/<id>',methods=['DELETE']) |
|||
def delete_drink(id): |
|||
drink = Drink.query.get(id) |
|||
if drink is None: |
|||
return {'error': "not found"} |
|||
db.session.delete(drink) |
|||
db.session.commit() |
|||
return {"message": '{} succesfuly deleted'.format(drink.name)} |
Binary file not shown.
Loading…
Reference in new issue