Python Web Development
Flask, FastAPI, Django basics, and web application patterns.
Overview
Build web applications with Python.
Flask Basics
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/')
def home():
return "Hello, World!"
@app.route('/api/users', methods=['GET'])
def get_users():
users = [
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"}
]
return jsonify(users)
@app.route('/api/users', methods=['POST'])
def create_user():
data = request.get_json()
return jsonify({"message": f"User {data['name']} created"}), 201
if __name__ == '__main__':
app.run(debug=True)
FastAPI Basics
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class User(BaseModel):
name: str
email: str
age: int
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/users/{user_id}")
def read_user(user_id: int):
return {"user_id": user_id, "name": "Alice"}
@app.post("/users/")
def create_user(user: User):
return {"message": f"User {user.name} created"}
# Run with: uvicorn main:app --reload
Django Basics
# models.py
from django.db import models
class User(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField(unique=True)
created_at = models.DateTimeField(auto_now_add=True)
# views.py
from django.http import JsonResponse
from .models import User
def user_list(request):
users = list(User.objects.values())
return JsonResponse(users, safe=False)
Practice
Build a REST API with FastAPI for a todo application.