Kay Ashaolu - Instructor
Aishwarya Sriram - TA
def make_secure(func):
def secure_function(*args, **kwargs):
if user["access_level"] == "admin":
return func(*args, **kwargs)
else:
return f"No admin permissions for {user['username']}"
return secure_function
@make_secure
def get_admin_password():
return "1234"
get_admin_password()
now performs an access check. @make_secure
def get_admin_password():
return "1234"
functools.wraps
to retain the original function’s name and docstring. import functools
def make_secure(func):
@functools.wraps(func)
def secure_function(*args, **kwargs):
if user["access_level"] == "admin":
return func(*args, **kwargs)
else:
return f"No admin permissions for {user['username']}"
return secure_function
python3.10 -m venv .venv
pip install flask
app.py
from flask import Flask, request
app = Flask(__name__)
flask run
app.py
and an app variable named app
.http://127.0.0.1:5000
stores = [
{
"name": "My Store",
"items": [
{"name": "chair", "price": 15.99}
]
}
]
@app.get("/store")
def get_stores():
return {"stores": stores}
true
/false
and double quotes.True
/False
and single/double quotes.http://127.0.0.1:5000/store
{
"name": "My New Store"
}
@app.post("/store")
def create_store():
request_data = request.get_json()
new_store = {
"name": request_data["name"],
"items": []
}
stores.append(new_store)
return new_store, 201
stores
list.POST /store/<name>/item
@app.post("/store/<string:name>/item")
def create_item(name):
request_data = request.get_json()
for store in stores:
if store["name"] == name:
new_item = {
"name": request_data["name"],
"price": request_data["price"]
}
store["items"].append(new_item)
return new_item, 201
return {"message": "Store not found"}, 404
@app.get("/store/\<string:name>")
def get_store(name):
for store in stores:
if store["name"] == name:
return store
return {"message": "Store not found"}, 404
@app.get("/store/<string:name>/item")
def get_store_items(name):
for store in stores:
if store["name"] == name:
return {"items": store["items"]}
return {"message": "Store not found"}, 404